gpt4 book ai didi

javascript - 更正主视口(viewport)的 HTML 滚动元素 (+jQuery)

转载 作者:行者123 更新时间:2023-11-30 18:49:34 24 4
gpt4 key购买 nike

当我想通过 javascript 代码滚动网站时,设置 .scrollTop 属性的正确元素是什么?

windowdocumentdocument.body 还是 html 元素?

jQuery 是否有一些技巧来检测滚动主视口(viewport)并统一调用的意图?在我看来,有时 $(window).scroolTop(value) 有效,但有时却无效。

最佳答案

通常,<html>元素,又名 document.documentElement .但是,如果您使用的是 Quirks 模式,<body> ( document.body ) 代表视口(viewport)。 (HTML/CSS 没有明确声明/要求这一点,但这是所有现代浏览器的工作方式。)

你永远不想进入怪癖模式,但如果你正在编写一个脚本以包含在其他人的页面上,你将不得不处理它:

var viewport= document.compatMode==='BackCompat'? document.body : document.documentElement;
// do something with viewport.scrollTop

jQuery 使用 window.scrollTo()而不是直接设置滚动属性。无论哪种方式在实践中都几乎相同。你可能会争辩说使用 scrollTo更简洁一些,因为它避免依赖由特定元素表示的视口(viewport),但是 jQuery 仍然必须使用 scrollTop/scrollLeft无论如何都要读取“其他”属性的当前值,所以没什么大不了的。您可以使用 pageXOffset/pageYOffset在不依赖特定元素的情况下读取当前滚动位置,但并非所有地方都支持它,因此您仍然必须回退到 scrollTop方法。

遗憾的是,这些属性/方法在过去都没有标准化。 CSSOM Views最终解决这个问题。

关于javascript - 更正主视口(viewport)的 HTML 滚动元素 (+jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4375615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com