获取窗口属性,获取dom尺寸

查看滚动条的距离

  • window.pageXOffset/pageYOffset
    ie8及ie8以下不兼容
  • document.body/document.Element.scrollLeft/scrollTop
    兼容性比较混乱,用时取两个值相加,因为不可能存在两个同时有值
    	var x =  window.pageXOffset;
       	var y =  window.pageYOffset;
       	console.log("pageXOffset:" + x,"pageYOffset:" +y);

在这里插入图片描述

封装兼容性方法,求滚动轮滚动离

/**
 * 获取滚动条兼容方法
 */
function getScroll() {
    if (window.pageXOffset) { //IE9以下不兼容
        return {
            x: window.pageXOffset,
            y: window.pageYOffset
        }
    } else {
        return {
            x: document.body.scrollLeft + document.documentElement.scrollLeft,
            y: document.body.scrollTop + document.documentElement.scrollTop
        }
    }
}

查看视口的尺寸

  • window.innerWidth/inner.Height
    IE及IE8以下不兼容
  • document.documentElement.clientWidth/clientHeight
    标准模式下,任意浏览器都兼容
  • document.body.clientWidth/clientHeight
    适用于怪异模式下的浏览器

封装兼容性方法,返回浏览器市口尺寸:

/**
 * 查看视口尺寸兼容方法
 */
function getView() {
    if (window.innerWidth) { //IE9以下不兼容
        return {
            w: window.innerWidth,
            h: window.innerHeight
        }
    } else {
        if (document.compatMode == "BackCompat") { //怪异模式
            return {
                w: document.body.clientWidth,
                h: document.body.clientHeight
            }
        } else if (document.compatMode == "CSS1Compat") { //标准模式下任何浏览器都兼容
            return {
                w: document.documentElement.clientWidth,
                h: document.documentElement.clientHeight
            }
        }
    }
}

查看元素的几何尺寸

  • domEle.getBoundingClientRect();
    兼容性很好
  • 该方法返回一个对象,对象里面有left,top,right,bottom等属性。left和top代表该元素左上角的X和Y坐标,right和bottom代表元素右下角的坐标
  • 返回的结果并不是实时的
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值