1

我有一组 Javascript 函数,我使用输入元素表来启用导航。比如跟踪当前关注的元素,从一行的末尾溢出到下一行的开头。我通过创建一个只有一列宽的表作为我的固定列并为另一个表提供滚动条,从而对固定的第一列提供滚动条支持。

但是,我最近注意到,滚动条的默认行为有点不足。当我导航到最后一列时,Firefox 使该列部分被滚动条遮挡,而不是滚动到足以看到它。同样,一旦我滚动到最后一列的另一部分,当我移动到下一行并且导航代码将焦点设置到第一列(冻结表)中的单元格时,Firefox 不会改变滚动条,这样我就可以看到第一列的所有内容。

因此,我一直在研究如何使用 javascript 修改滚动条定位。我的表格不使用垂直滚动条,只使用水平滚动条。所以我偶然发现了scrollLeft。

document.getElementById("meastable").scrollLeft = 1; // reset scroll to leftmost

不幸的是,这似乎只在一段时间内起作用。当我启用 Firebug 并通过我的导航代码跟踪此行所在的位置时,它似乎偶尔工作一次,但大多数时候,此行会运行,但表向左滚动属性未更改,我看不到更改视觉上也是。

我还将 scrollLeft 设置为一个高数字,因此它将被设置为文档中描述的最大值,这也不起作用(偶尔除外)。

我使用以下代码在我的表格中设置滚动条。

<div style="overflow:auto">
<table id="meastable" border="1">

根据 Mozilla 的文档,这似乎起源于 IE,但现在可以在 Firefox 中使用。这实际上在 Firefox 中不起作用吗,因为内部项目仅适用于 Firefox。

所以我试图找出问题所在。是否已知 scrollLeft 不能正常工作,或者我应该回去看看我是否在滚动条的定义中搞砸了一些东西或类似的东西?

4

1 回答 1

7

包含的 div 是溢出的元素。您需要设置 div 的 scrollLeft,而不是表格。

于 2009-04-06T20:25:49.357 回答