我有一组javascript函数,我使用一个输入元素表来启用导航。像跟踪当前焦点元素,以及从一行结束到下一行开始溢出。通过创建一个与固定列一样只有一个列宽的表,并为另一个表创建一个滚动条,我可以使用固定第一列来支持滚动条。
但是,我最近注意到,滚动条的默认行为有点不足。当我导航到最后一列时,火狐会将该列部分隐藏在滚动条中,而不是滚动到足以看到它的位置。同样,当我滚动到下一行,导航代码将焦点设置到第一列(冻结表)中的一个单元格时,firefox不会更改滚动条,所以我可以看到第一列的所有内容。
因此,我一直在研究如何使用JavaScript修改滚动条定位。我的表不使用垂直滚动条,只使用水平滚动条。所以我偶然发现了向左滚动。
document.getElementById("meastable").scrollLeft = 1; // reset scroll to leftmost
不幸的是,这似乎只是偶尔才起作用。当我启用Firebug并通过我的导航代码跟踪此行所在的位置时,它似乎会偶尔工作一次,但大多数情况下,此行将运行,但Tables Scroll Left属性保持不变,我也看不到视觉上的变化。
我还将ScrollLeft设置为一个较大的数字,以便将其设置为文档中所述的最大值,而且这也不起作用(偶尔除外)。
我使用以下代码在我的表中设置滚动条。
<div style="overflow:auto">
<table id="meastable" border="1">
根据Mozilla的文档,这似乎是源于IE的东西,但现在可以在Firefox中使用。这在firefox中真的不起作用吗,因为这个项目只适用于firefox。
所以我想弄清楚是怎么回事。是否知道ScrollLeft不能正常工作,或者我应该回去看看我是否在我对滚动条的定义中搞砸了什么,或者沿着这些线做了什么?