![](/img/trans.png)
[英]Firefox's document.body.getBoundingClientRect().top is incorrect?
[英]Safari's getBoundingClientRect() Implementation Returns Incorrect Top
我有一個帶有float: right
的div
,我正在嘗試獲取它與視口頂部的距離。 在除 Safari 之外的每個瀏覽器中,我都從element.getBoundingClientRect().top
獲得了預期的結果。 Safari 似乎在報告元素與頁面頂部而不是視口的距離。 這與此方法的規范中定義的內容相反(據我所知)。 Safari 只是沒有遵守這里的規則,還是其他瀏覽器更寬容我沒有看到的一些錯誤?
這似乎是影響 Safari 在其加載事件上報告元素和滾動位置的方式的錯誤。 如果您以 500 毫秒的超時運行完全相同的調用,則一切都會按預期進行。
當我聽到我的錯誤報告時,我會更新。
有同樣的問題,500ms 的技巧並沒有為我解決它。
工作是在正文的末尾添加一個腳本(任何腳本,甚至是空的)。
如 :
[...]
<script type="text/javascript">
//content doesn't matter
</script>
</body>
[...]
您可以嘗試等待 fonts 就緒全局 promise:
document.fonts.ready.then(() => {
const {top} = element.getBoundingClientRect();
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.