javaScript DOM操作 (中)

在实际开发中,我们往往需要获取网页上的一些此尺寸,但是官方给出的方法很多,容易混,这里分以下类

查看滚动条的距离

  • window.pageXOffset/pageYOffset 该方法在IE8及IE8以下不兼容, 可以使用下面的方法
  • document.body.scrollLeft || .scrollTop  或者 document.documentElement.scrollLeft || .scrollTop,由于兼容性比较混乱,有时候支持前者,有时候支持后者,但是不会同时支持,所以一般是取两者相加

查看可视区域视口的尺寸

  • window.innerWidth(包括滚动条)/innerHeight 但是该方法在IE8及IE8以下不兼容 可以使用以下方法,
  • document.documentElement.clientWidth(不包括滚动条)/clientHeight, 但是方法只是在标准模式下,任意浏览器都兼容, 标准模式就是使用当前浏览器的最新语法,怪异模式就是向后兼容,通过去除html文档顶部的<!DOCTYPE html>实现, 可通过document.compatMode来查看到底是标准模式还是怪异模式,在怪异模式下面,可以通过下面的方法实现
  • document.body.clientWidth(不包括滚动条)/clientHeight(整个文档高度,包括不可视部分)

查看元素的几何尺寸(宽高)

  • domEle.getBoundingClientRect();该方法会返回一个对象,该方法返回一个对象,对象里面有left,top,right,bottom等属性。left和top或者x和y,代表该元素左上角的X和Y坐标,right和bottom代表元素右下角的X和Y坐标,而且需要注意的是,它们都是相对于文档顶部左上角的坐标而不是窗口。height和width属性代表元素内容区宽高,老版本IE并未实现,而且该方法返回的结果并不是“实时的”。一般我们可以使用下面的方法替代它:
  • dom.offsetWidth,dom.offsetHeight 来获得宽高,dom.offsetLeft, dom.offsetTop来获得左上角位置。需要注意的是,这几个方法对于无定位父级的元素,返回相对文档的坐标。对于有定位父级的元素,返回相对于最近的有定位的父级的坐标。定位也就是(css 的position属性 ),.同时dom.offsetParent返回最近的有定位的父级,如无,返回body

滚动条滚动

  • window上有三个方法, scroll(),scrollTo(),scrollBy(),三个方法功能类似,用法都是将x,y坐标传入。即实现让滚动轮滚动到当前位置。scroll(),scrollTo(),指定的是滚动到哪个左边, 而scrollBy()指定的是滚动一次要滚动多长的距离

使用event 获取鼠标的位置

  • event.clientX | clientY: 返回相对于窗口的位置
  • event.offsetX | offsetY: 返回相对于当前元素的位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值