IE 、Firefox、chrome及Safari下scrollTop的差异

刚在写document.body.scrollTop=0 实现返回页面顶部时,发现火狐及IE下无效,但在chrome及Safari下有效,后来测试发现滚动页面一定距离后:
1、在IE及Firefox中document.body.scrollTop的值恒为零,但是document.documentElement.scrollTop及window.pageYOffset(该参数返回文档在垂直方向已滚动的像素值)的值为滚动的距离;
2、在chrome及Safari(webkit内核)下document.documentElement.scrollTop的值恒为零,但是document.body.scrollTop及window.pageYOffset的值为滚动的距离

一、IE11的情况

IE.png

二、Firefox 52.0.2的情况

Firefox.png

三、chrome 57.0.2987.133 的情况

chrome.png

四、Safari的情况

用的手机Safari浏览器测试的。。。没钱买苹果笔记本, 略...... 哈哈。。。(Safari内核也为webkit,同chrome一样)

五、总结

因此构建返回顶部事件时,为了兼容,可以这样写:

    goToTop.addEventListener("click", function () {
        if (document.documentElement.scrollTop){
            document.documentElement.scrollTop=0;
        }
        if (document.body.scrollTop){
            document.body.scrollTop=0 ;
        }
//        $(window).scrollTop(0); 使用了jQuery 或zepto 等库 可以这样写
    })

或者更简单的方法

    goToTop.addEventListener("click", function () {
                window.scrollTo(0,0); //前面一个0 表示要在窗口文档显示区左上角显示的文档的 x 坐标,后面0表示y坐标
})

值得注意的是 我们并没有 因为window.pageYOffset在这三个浏览器中表现正常,就使用window.pageYOffset=0 这样的语句,这是因为这样只是简单的赋值而已,其不会去操作滚动条。

**本文版权归本人即简书笔名:该账户已被查封 所有,如需转载请注明出处。谢谢! *

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Window和document对象的区别 window对象window对象表示浏览器中打开的窗口window对象是...
    FConfidence阅读 6,747评论 0 5
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 7,770评论 0 8
  • H5页面窗口自动调整到设备宽度,并禁止用户缩放页面//一、HTML页面结构 // width 设置viewp...
    tiandashu阅读 16,816评论 0 9
  • 作业太多的教育是伪教育,以分数为唯一评价标准的管理是伪管理――不是我说的 我主业教语文,兼代另两个班的写字课。 七...
    雪地飞狐阅读 3,624评论 6 6
  • 一,电视剧太长最少也得有个二十多集三十集吧,每一集最少45分钟,一部电视剧下来得花多少时间。我不是一个特别忙的人,...
    goddessna阅读 3,161评论 0 0

友情链接更多精彩内容