javaScript DOM操作 (中)

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

查看滚动条的距离

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

查看视口的尺寸,也就是html文档的尺寸

  • 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坐标,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()指定的是滚动一次要滚动多长的距离

猜你喜欢

转载自blog.csdn.net/Her_smile/article/details/81034993