1.元素偏移量offset
1.1什么是offset
offset就是偏移量。offset系列有很多重要的属性需要我们进行记忆。我们使用offset系列相关属性可以得到该元素的位置(偏移)、大小等。
1.2offset系列常用属性 1.3offset总结
- offset可以获得元素距离带有定位的父级元素的位置 。若父级元素都没有带定位,则返回距离body的距离。
- offset返回的数值都是不带单位的。
- 通过offset返回的宽度和高度都是元素自身的内容区加上左右边框border大小再加上左右内边距padding的总值,也是不带单位的。
1.4offset 与 style 区别
offset
- offset可以得到任意样式表中的样式值(行内和外部)
- offset系列获得的数值是没有单位的
- offsetWidth 包含 padding+ border+width
- offsetWidth等属性是只读属性,只能获取不能赋值
- 所以,我们想要获取元素大小位置,用offset更合适
style
- style只能得到行内样式表中的样式值
- style.width获得的是带有单位的字符串
- style.width 获得不包含padding和border 的值
- style.width是可读写属性,可以获取也可以赋值
- 所以,我们想要给元素更改值,则需要用style改变
2.元素可视区client
client是客户端的意思,我们可以使用client的相关属性来获取可视区的相关信息。通过client的相关属性可以动态的得到改元素的边框大小、元素大小等。
client系列属性
3.元素滚动scroll
scroll是滚动的,我们使用scroll相关的属性可以动态获得元素的大小、滚动距离等。
scroll系列属性
4.总结
4.1三大系列总结
- offset系列经常用于获得元素位置
- client 经常用于获取元素大小 clientwidth clientHeight
- scroll经常用于获取滚动距离scrollTop scrollLeft
- 注意页面滚动的距离通过 window.pageXOffset 获得
4.2 mouseenter 和mouseover的区别
- mouseover鼠标经过自身盒子会触发,经过子盒子还会触发。mouseenter只会经过自身盒子被触发。
- 两种都是鼠标移动到元素上会被触发,但是mouseenter不会冒泡(mouseleave也不会冒泡),mouseover会冒泡