offsetParent.scrollTop在大多数浏览器中不起作用
offsetParent.scrollTop doesn't work in most browsers
我做错了什么吗?看起来这只适用于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>
(请不要回答为什么不使用"test",因为这是一个简化的例子,以证明我有一个问题使用offsetParent
)
只是阅读文档上的offsetParent,看看在Chrome和Firefox中发生了什么,很明显,offsetParent
被设置为<body>
元素,你的div与id="test"
没有定位。
如果你把position: relative
添加到你的容器div,它会把它作为offsetParent并正常工作。我不知道这是否是你正在寻找的修复,但它工作。
当然,另一种选择是使用.parentElement
而不是offsetParent
,这取决于您的用例。
使用document.getElementById("item1").parentElement.scrollTop = 1000
offset parent不是用来查找节点的父元素,而是用来查找"最近的表单元格或根元素",在您的情况下是<body>
标记。参见MDN文档offsetParent
相关文章:
- 当我在浏览器中打开HTML文件时,javascript不起作用
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- 为什么简单的Promise语句在浏览器中不起作用
- 用于播放背景音乐的嵌入式flash播放器在IE浏览器中不起作用
- 带有Safari的Javascript;不起作用——所有其他浏览器都起作用
- 使用Javascript的Ajax请求在iPhone浏览器中不起作用
- 谷歌浏览器模式正则表达式在使用setCustomValidity动态创建表单时不起作用
- 为什么我的谷歌浏览器扩展程序在谷歌浏览器版本 41.0.2272.89 中不起作用
- 为什么这个JavaScript在浏览器中不起作用
- 多个 socket.io 客户端连接不起作用(谷歌浏览器,火狐浏览器)
- 脚本在web浏览器控件中不起作用
- 禁用浏览器中的后退按钮不起作用
- 将JSON对象转换为敲除observable在IE8中不起作用,但在所有其他浏览器中都起作用
- jQuery在我的网站上不起作用,但在我的浏览器上起作用
- 角度路由;在浏览器中直接访问URL时不起作用,但在单击时起作用
- 转到顶部按钮在Firefox浏览器中不起作用
- javascript代码在浏览器中不起作用
- JavaScript文件在浏览器中不起作用,但它在代码笔中起作用
- Javascript浏览器通知不起作用
- 为什么javascript在谷歌浏览器上不起作用