offsetParent.scrollTop 在大多数浏览器中不起作用

Sti*_*ers 0 html javascript dom

难道我做错了什么?看起来这只适用于 IE,尽管我看不到我期望其他人无法处理的内容。

<div id="test" style="height:4em;overflow:scroll;">
one<br />two<br />three<br />four<br />five<br />six<br />seven<br />eight<br />nine<br />ten<br />
<b id="item1">I should come into view!</b>
</div>
<script><!--
document.getElementById("item1").offsetParent.scrollTop=1000;
//--></script>
Run Code Online (Sandbox Code Playgroud)

(请不要回答为什么不使用“test”,因为这是一个简化的示例,用于证明我在使用时遇到问题offsetParent

VNO*_*VNO 6

只需阅读有关 offsetParent 的文档并查看 Chrome 和 Firefox 中发生的情况,就可以清楚地看到该元素offsetParent被设置为<body>元素,而您的 divid="test"未定位。

如果您添加position: relative到容器 div,它会将其作为 offsetParent 并正常工作。我不知道这是否是您正在寻找的修复方法,但它确实有效。

当然,另一种选择是使用.parentElement代替offsetParent,具体取决于您的用例。