浏览器中的各种宽高

1.DOM部分

1.1只读属性

只能获取,不能设置,获取的值是不带单位的

(1).clientWidth 和 clientHeight

获取可视区部分的宽高,即padding+content,如果有滚动条,则该属性的值就是原本的宽高减去滚动条的宽度

(2).offsetWidth和offsetHeight

获取元素的border+padding+content的宽高,该属性和内部的内容是否超出元素大小无关,只与原来的border和width有关

(3).clientTop和clientLeft

获取元素的border的宽度和高度

(4).offsetTop和offsetLeft

说到这一对属性就要说到offsetParent,其表示当前元素的离自己最近的具有定位的父级元素,该父级元素就是当前元素的offsetParent,如果一直向上查找也找不到这样一个父级元素,那么当前元素的ofsetParent就是body元素。

offsetLeft和offsetTop就是指的是当前元素当对于其offsetParent的左边距离和上边距离,级当前元素的border到它的offsetParent的border的距离。

(5).scrollHeight和scrollWidth

当元素内部的内容超出其宽的和高度的时候,scrollHeight和scrollWidth表示内部元素的实际宽高,当没有超出其宽高时表示元素的clientWidth 和 clientHeight。

1.2可读可写属性

(1).scrollTop和scrollLeft

表示当元素内部的内容超出其宽高时,元素被卷起的宽度和高度。

DOM.style.属性

对于一个DOM元素,它的style属性返回的是一个对象,这个对象中的属性时可读可写的,在读的时候返回的值通常是带有单位的,但是他只能获取到该元素的行内样式,而不能获取到该元素最终计算好的样式,这就是在读取属性指的时候和上面的区别,如果要获取到计算好的属性样式,使用obj.currentstyle(IE)和getComputedStyle(IE浏览器除外)

2.Event对象

在JS中很多事件操作都涉及到位置属性

(1).clientX和clientY

当事件触发的时候,事件触发的位置(一般是鼠标点击的位置)位于浏览器的坐标。浏览器的左上角为(0,0),该属性计算事件触发的位置的坐标。

(2).screenX和screenY

当事件触发的时候,事件触发的位置(一般是鼠标点击的位置)位于屏幕的坐标。屏幕的左上角为(0,0),该属性计算事件触发的位置的坐标。

(3).offsetX和offsetY

当事件触发的时候,事件触发位置相对于该事件源对象左上角的位置

(4).pageX和pageY

该属性获取事件触发的位置相对于页面左上角的位置,也就是说如果页面没有滚动条,该属性的值和clientX和clientY是等价的,但是当出现滚动条的时候pageX是大于clientX的。

打赏一点吧