Him*_*u P 36 javascript scrolltop strict-mode
似乎body.scrollTop(和body.scrollLeft)在ES5严格模式下被弃用.这是什么原因,因为在其他DOMElements 上使用这些属性似乎仍然可以吗?
背景资料:
我有一个函数,试图增加(或减少,如指定)的scrollTop所有祖先的值element,直到其中一个实际更改.我想知道,为了保持对严格模式的投诉,我应该特别检查body元素,因为父母的链向上移动.
[显然,body指document.body]
sam*_*sam 42
这是Chrome自己不正确的行为,已被弃用,他们警告作者不要再依赖它了.
所述滚动视口由下式表示document.documentElement(<html>)中的标准模式或<body>在特殊模式.(Quirks模式模拟Navigator 4和Explorer 5的文档呈现.)
Chrome用于body.scrollTop在两种模式下表示视口的滚动位置,这是错误的.听起来他们想解决这个问题,所以他们鼓励作者为标准行为编写脚本.
我认为您不需要更改代码.body.scrollTop在标准模式下使用没有任何问题,只要您了解它body仅表示滚动位置(通常0,除非您已经给出body了滚动框).
您可以通过document.body.scrollTop在控制台中执行来查看警告:
body.scrollTop在严格模式下已弃用.请documentElement.scrollTop在严格模式下使用,并且body.scrollTop仅在quirks模式下使用.
我注意到我的代码停止使用较新版本的Chrome.我用它来修复它window.scrollY
之前:
var scrollTop = document.body.scrollTop;
Run Code Online (Sandbox Code Playgroud)
现在:
var scrollTop = window.scrollY;
Run Code Online (Sandbox Code Playgroud)
它现在一直有效.您可以在此处找到更多文档.
另外,我正在使用:
document.body.scrollTop = 0;
Run Code Online (Sandbox Code Playgroud)
现在我用以下代替:
window.scrollTo(0, 0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42059 次 |
| 最近记录: |