Javascript 狩猎旅行';s getBoundingClientRect()实现返回不正确的Top
我有一个Javascript 狩猎旅行';s getBoundingClientRect()实现返回不正确的Top,javascript,dom,safari,getboundingclientrect,Javascript,Dom,Safari,Getboundingclientrect,我有一个div,带有float:right,我试图得到它与视口顶部的距离。在除Safari之外的所有浏览器中,我都从元素.getBoundingClientRect().top获得了预期的结果。Safari似乎在报告元素与页面顶部的距离,而不是与视口的距离。这与(据我所知)中的定义相反。Safari只是没有遵守这里的规则,还是其他浏览器更能原谅我的一些我没有看到的错误?这似乎是一个bug,它会影响Safari在其加载事件中报告元素和滚动位置的方式。如果您在500毫秒超时的情况下运行完全相同的调用
div
,带有float:right
,我试图得到它与视口顶部的距离。在除Safari之外的所有浏览器中,我都从元素.getBoundingClientRect().top
获得了预期的结果。Safari似乎在报告元素与页面顶部的距离,而不是与视口的距离。这与(据我所知)中的定义相反。Safari只是没有遵守这里的规则,还是其他浏览器更能原谅我的一些我没有看到的错误?这似乎是一个bug,它会影响Safari在其加载事件中报告元素和滚动位置的方式。如果您在500毫秒超时的情况下运行完全相同的调用,那么一切都会按预期工作
当我听到我的错误报告时,我会更新。也有同样的问题,500毫秒的技巧并不能解决我的问题 任务是在正文末尾添加一个脚本(任何脚本,甚至是一个空脚本) 例如:
[...]
<script type="text/javascript">
//content doesn't matter
</script>
</body>
[...]
[…]
//内容无关紧要
[...]
你在其他“移动”浏览器中也有同样的体验吗?这不是在mobile Safari上。你收到任何回复吗?@RomanSnitko Nope。5年内一点也没有。我最近没有检查它是否仍然是一个问题。这是一张罚单:这个解决方案对我不起作用,但在正文末尾添加一个空标签起了作用。这个解决方案对我有效(y)。在运行我的函数之前添加500ms或addEventListeners('load',()=>{}
。空脚本标记不起作用。