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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值