0

我有一个div“内容”,id="one"里面有锚。

现在,我正在使用来自外部链接的 onClick 事件将“内容”滚动一个像素距离,以将“一个”带入视野,而不会使页面的其余部分跳转,并且它按计划运行良好且流畅......

onClick="document.getElementById('content').scrollTop = 400;

但我宁愿计算offsetTop“一”的确切距离并滚动该距离而不是我的任意数字。

这就是我正在尝试的:

<script type="text/javascript">
<!--
var topPos = document.getElementById('one').offsetTop;
//-->
</script>

onClick="document.getElementById('content').scrollTop = topPos;

<a id="one"></a> being how I ID the element within the content.

但是 topPos 返回 null!我似乎无法克服这一点。我不知道这是我糟糕的 javascript 技能(可能)还是我的 css 没有提供任何数字的事实。如果这很重要,我没有使用固定定位。谁能告诉我我的明显错误?提前致谢。

4

2 回答 2

1

有什么理由不使用scrollIntoView()

https://developer.mozilla.org/en/DOM/element.scrollIntoView

于 2011-06-15T20:38:59.893 回答
0

根据脚本所在的位置,可能是因为浏览器还没有足够的信息来检索 topPos。尝试将脚本放在页面底部或运行它以响应页面加载事件。或者,不要提前计算,只需让 onClick 调用一个函数来计算位置并设置滚动。

于 2011-10-17T22:17:59.800 回答