我有一个div
“内容”,其中包含锚id="one"
。
现在,我正在使用来自外部链接的onClick事件来滚动“内容”一个像素距离,以使“一个”进入视图而不会使页面的其余部分跳转,并且它按计划运行良好和平滑。 。
onClick="document.getElementById('content').scrollTop = 400;
但我宁愿计算“one”的确切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没有提供任何数字的事实。如果这很重要,我不会使用固定定位。谁能告诉我我的明显错误?提前谢谢。
答案 0 :(得分:1)
有什么理由不使用scrollIntoView()
?
答案 1 :(得分:0)
根据脚本的位置,可能是因为浏览器还没有足够的信息来检索topPos。尝试将脚本放在页面底部或运行它以响应页面加载事件。 或者,不要提前计算,只需让onClick调用一个函数来计算位置并设置滚动。