首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何滚动两个ag-grid同步?

滚动两个ag-grid实现同步的方法如下:

  1. 首先,确保两个ag-grid实例的配置和数据源相同,以便它们具有相同的列和行。
  2. 监听第一个ag-grid实例的滚动事件。可以使用ag-grid的onBodyScroll事件来监听滚动。当第一个ag-grid滚动时,获取其滚动的水平和垂直偏移量。
  3. 将获取到的滚动偏移量应用到第二个ag-grid实例上。可以使用ag-grid的api.ensureIndexVisible方法来确保指定的行和列可见。通过将第一个ag-grid的滚动偏移量应用到第二个ag-grid上,可以实现它们的同步滚动。

以下是一个示例代码:

代码语言:javascript
复制
// 第一个ag-grid实例的滚动事件监听
grid1Options.onBodyScroll = function(event) {
  // 获取滚动的水平和垂直偏移量
  var horizontalScroll = event.target.scrollLeft;
  var verticalScroll = event.target.scrollTop;

  // 将滚动偏移量应用到第二个ag-grid实例上
  grid2Options.api.ensureIndexVisible(0, 'top');
  grid2Options.api.ensureColumnVisible('columnName');
  grid2Options.api.setScrollLeft(horizontalScroll);
  grid2Options.api.setScrollTop(verticalScroll);
};

// 创建第一个ag-grid实例
var grid1 = new agGrid.Grid(grid1Div, grid1Options);

// 创建第二个ag-grid实例
var grid2 = new agGrid.Grid(grid2Div, grid2Options);

这样,当第一个ag-grid实例滚动时,第二个ag-grid实例将会同步滚动。请注意,示例代码中的grid1Optionsgrid2Options是ag-grid的配置对象,你需要根据实际情况进行相应的配置。

关于ag-grid的更多信息和使用方法,你可以参考腾讯云的相关产品和文档:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

我是如何爱上ag-grid框架的

与每个管理系统一样,我们需要选择一个网格来显示我们的数据,而我的前任已经在应用程序中使用了两个网格 -  ag-Grid(v2.7)和Ng-Table(v0.8.3) - 我热情地讨厌前者。...我查看了AngularJS 1.x的多个网格项目,没有像ag-Grid那样活跃,当我随便链接链接时,我登陆了ag-Grid示例页面。我的前任做错了!...后来,我添加了自己的数据虚拟化(在ag-Grid上重构之前)并且享受了网格API提供的一些很酷的东西。完成后,CRM的开发很快。...“ 现在,对JavaScript的数据网格,尤其是AngularJS 1.x的教育和经验,我只是笑着教他们关于ag-Grid。...ag-Grid为您制作想要制作的所有东西提供了基础,这对我来说是一个胜利者。 ---- aggrid的最新版本已经发布, 可以到官网上去寻找最新文档.

6.2K40
  • markdown 编辑器实现双屏同步滚动

    我发现各大社区的 markdown 编辑器基本都有同步滚动功能。只不过有些做得好,有些做得马马虎虎。出于好奇,我就打算自己亲自实现一下这个功能。...思考了一段时间,最后想出来了三种方案: 百分比滚动 双屏同时渲染占用面积大的元素 每一行的元素都赋上一个索引,根据索引来精确同步每一行的滚动高度 百分比滚动 假设现在正在滚动 a 屏,那 a 屏的滚动百分比计算方式为...当滚动 a 屏时,需要手动同步 b 屏的滚动高度,也就是根据 a 屏的滚动百分比算出 b 屏的滚动高度: a.onscroll = () => { b.scrollTo({ top: a.scrollTop...每一行的元素都赋上一个索引,根据索引来精确精确同步每一行的滚动高度 之前两个方案都属于勉强能用,不够好。现在这个第三方案就比前面两个强多了,几乎能做到精确同步每一行的内容。具体怎么做呢?...图片 这样一来,同步滚动就正常了。同理,其他的嵌套元素也一样(譬如 ul ol)。

    89720

    如何实现一个能精确同步滚动的Markdown编辑器

    ,比如在编辑区域滚动时,预览区域会随着滚动,反之亦然,方便两边对照查看,如果你用过多个平台的Markdown编辑器的话可能会发现有的平台编辑器同步滚动非常精确,比如掘金、segmentfault、CSDN...等,而有的平台编辑器当图片比较多的情况下同步滚动两边会偏差会比较大,比如开源中国(底层使用的是开源的 editor.md)、51CTO等,另外还有少数平台则连同步滚动的功能都没有(再见)。...) = previewArea.scrollTop / (previewArea.scrollHeight - previewArea.clientHeight) 那么如何才能让同步滚动精确一点呢,我们可以参考...,先计算出两个区域的所有元素的所在高度信息,然后再获取编辑区域当前的滚动距离,求出当前具体滚动到了哪个节点内,因为两边的节点是一一对应的,所以可以求出预览区域对应节点的所在高度,最后让预览区域滚动到这个高度即可...]; } }; 效果如下: 修复节点内滚动同步的问题 可以看到跨节点滚动已经比较精准了,但是如果一个节点高度比较大,那么在节点内滚动右侧是不会同步滚动的: 原因很简单,我们的同步滚动目前只精确到某个节点

    89310

    如何防止Vue页面局部元素滚动时,页面整体滚动

    我最近遇到了一个问题,就是Vue页面我引入了一个列表组件,这个列表是可以单独滚动的。当我把鼠标移入,开始滚动操作时候,浏览器最右边的滚动条也会开始滚动。...我尝试在@mousewheel.native这个事件,第一行加入e.stopPropagation(),发现还是没有作用,最外层的body还是可以滚动。...而浏览器的默认行为是,当一个滚动事件发生且子元素滚动到边界时(比如已经滚动到底部或顶部),事件会继续传递给父容器,最终传递到 body,导致页面的整体滚动。...解决方法 为了防止整个页面滚动(即 body 的滚动),你需要使用 e.preventDefault() 来阻止浏览器的默认行为。...总结 浏览器的滚动事件需要用preventDefault() 来阻止,这个事件写在某个页面元素上不会影响该元素的正常滚动。这是个小问题,记录一下,方便下次遇到又忘记了。

    51200

    css如何隐藏垂直滚动条但同时需保持滚动

    前言 在写前端页面时,对于超出的内容,我们希望隐藏,同时保持垂直的滚动,但是又不希望有丑陋的垂直滚动条,那该怎么去实现呢 实现方式有很多种,可以用iscroll插件,也可以用css去解决 01 方法1-...计算滚动条宽度并隐藏起来 这种方法主要是通过计算滚动条宽度,给隐藏起来的,如下示例所示 具体片段代码如下所示 <div...,实现隐藏 bottom: 0; overflow-x: hidden; overflow-y: scroll; // 垂直滚动 } 02 方法2-使用三个容器包围起来,不需要计算滚动条的宽度...这样子就看不到滚动条同时也可以滚动 ...那就是自定义滚动条的伪对象选择器::-webkit-scrollbar .content::-webkit-scrollbar { width: 0 !

    2.2K10

    AgGrid框架的使用感受及前景分析

    免责声明:文章源于本人闲情雅致,没有任何广告意图 我向来是不屑于使用前端框架的,最多用一些ui组件,但是ag-grid这个框架太TM好用了。...这时一个成熟的开发者当然应该用自己的技术来引导甚至改变用户的需求,但无论如何,首先要做的是建立一个基本的数据对象模型,比如ER图。...Ag-Grid:媲美Excel的web框架 完美的集合关系模型如何在前端展现呢,最好的办法呢就是画一个表格,经过1个多月的框架抉择,我终于在能力矩阵2.X版本中选择用aggrid来重构整个系统。...例如,如果您将1,000条记录和20列加载到网格中,但用户只能看到50条记录和10列(因为其余的未滚动到视图中),则网格仅呈现用户的50行和10列可以实际看到。...设计focus对象 focus对象是我常用的一种自定义对象,通常挂载在window.app上,但在aggrid这个重量级框架面前,也可以挂载在元素上面。

    6K40

    如何在DataGrid里面产生滚动条而不滚动题头

    我们在开发的时候一定遇到,使用DataGrid的时候由于不想分页(数据没有那么多)但是又显示不在一页里面,此时我们希望在DataGrid里面出现一个滚动条,可以上下滚动DataGrid里面的数据而不用上下滚动页面...,由于写本文的目的是为了说明如何实现,所以对于细节性的问题读者可以自己思考完成(比如:既要分页又要滚动等等)。...为了可以滚动DataGrid我们需要一个可以让客户端的Table滚动js脚本(该js代码我是从CodeProject上面下载的),但又不能滚动Table的题头(也就是第一行)。...Table是由组成的,我们的脚本里面是需要使用到Table的Thead和Tbody的(在大多数的客户端的应用中都要用到此功能比如:客户端的排序、以及列的托拽等等),因此我们接下来的任务就是如何为我们客户端的这个...接下来我们要将我们准备的js代码内嵌到我们的控件里,好让放这个控件的页面上最终在客户端都会有这段js代码用来完成我们滚动的任务。

    1.5K110
    领券