JavaScript网页滚动距离

不同浏览器获取网页滚动距离的方法不同

浏览器在渲染网页的时候有两种模式:“标准模式(CSS1Compat)”、“混杂模式/怪异模式(BackCompat)”
默认情况下都是以标准模式来渲染的,
如果网页没有书写文档声明就会按照”混杂模式/怪异模式“来进行渲染

  • 文档声明:<!DOCTYPE html>
1.IE9以及IE9以上的浏览器
window.pageXOffset;//水平方向
window.pageYOffset;//垂直方向
2.标准模式下浏览器
document.documentElement.scrollTop;//垂直方向
document.documentElement.scrollLeft;//水平方向
3.混杂(怪异)模式下浏览器
document.body.scrollTop;//垂直方向
document.body.scrollLeft;//水平方向
4.解决网页滚动的距离的兼容问题:将网页滚动的距离封装成方法
<script>
    window.onscroll = function () {//鼠标的滚动事件
        let{x, y} = getPageScroll();//对象的解构赋值——ES6新增
        console.log(x, y);//答应水平与垂直方向的滚动距离
        
        function getPageScroll() {//获取网页滚动距离的方法
            let x, y;
            if (window.pageXOffset){//查看有无pageXOffset属性:IE9以及IE9以上的浏览器
                x = window.pageXOffset;
                y = window.pageYOffset;
            }else if (document.compatMode ==  "BackCompat"){//混杂(怪异)模式下浏览器
                x = document.body.scrollLeft;
                y = document.body.scrollTop;
            }else {//标准模式下浏览器
                x = document.documentElement.scrollLeft;
                y = document.documentElement.scrollTop;
            }
            return {//返回水平距离、垂直距离
                x:x,
                y: y
            }
        }
    }

</script>

猜你喜欢

转载自blog.csdn.net/Cao_Mary/article/details/90232473