javascript - 有没有办法让谷歌可视化表中最左边的列在横向滚动时保持固定?

标签 javascript jquery css google-visualization

我想模仿标准的谷歌可视化表标题行行为,但将其应用于第一列。这似乎不是内置功能,但我想知道它是否可以通过一些自定义 CSS 来实现?

最佳答案

我最终对谷歌如何完成顶部标题进行了逆向工程。他们正在创建整个表格的副本,将其放在一个 div 中,对其进行绝对定位并将高度设置为等于第一行的高度。这实现了当您向下滚动主表时它固定在顶部的效果。

横向滚动更复杂,因为横向滚动时它们需要标题也滚动。 CSS 没有用于此的机制(因为它绝对位于滚动内容之外),因此 Google 在这里使用 javascript。

为了模拟固定列的这种行为,我们首先创建表的第三个克隆。然后我们通过一些 CSS 体操来获得正确的宽度/高度和位置。最后,我们将一个监听器附加到主表的 onScroll 事件上,该事件同步滚动表头表。 $.schollbarWidth() 函数来自 this plugin .

visualization = new google.visualization.Table(document.getElementById('table'));
visualization.draw(data);

var fullTable = $('#table > div > div:first');
var yHeader = fullTable.clone().insertAfter(fullTable);
yHeader.css('width', yHeader.children('tr td:first').outerWidth())
       .css('height', fullTable.innerHeight() - $.scrollbarWidth())
       .css('position', 'absolute')
       .css('top', '0px')
       .css('left', '0px')
       .css('overflow', 'hidden')

fullTable.scroll(function() {
  yHeader.scrollTop(fullTable.scrollTop());
});

关于javascript - 有没有办法让谷歌可视化表中最左边的列在横向滚动时保持固定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2700278/

相关文章:

javascript - Apache Thrift 中的一般错误处理

jquery - 没有不透明度 IF 元素可见

javascript - 粘贴后是否有事件发生?

javascript - 将 CSS 应用于动态生成的元素

jquery - 使用 jQuery 按钮水平对齐带省略号的文本

jquery - 在鼠标悬停时不断增加或减少 css "left"值

javascript - 单击按钮时查找自动生成的文本框 ID

javascript - Backbone.js Collection 不从 api 获取数据

javascript - jQuery 检查是否填写必填字段的最佳方式

javascript - 谷歌地图中的图标