1.offset概述

-- 使用offset系列相关属性可以动态的得到该元素的位置(偏移),大小等。

offset系列属性

作用

element.offsetParent

返回作为该元素带有定位的父级元素,如果父级没有定位,返回body

element.offsetTop

返回元素相对带有定位的父元素上方的偏移

element.offsetLeft

返回元素相对带有定位的父元素左边框的偏移

element.offsetWidth

返回自身包括padding、边框、内容区的宽度,返回数值不带单位

element.offsetHeight

返回自身包括padding、边框、内容区的高度

2.offset与style区别

2.1.offset
1.可以得到任意样式表中的样式值
2.offset 系列获得的数值是没有单位的
3.offsetWidth 包含 padding + border + width
4.offsetWidth 等属性是只读属性,只能获取不能赋值,所以
我们想要获取元素大小位置,用 offset 更合适
2.2.style
1.style 只能得到行内样式表中的样式值
2.style.width 获得的是带有单位的字符串
3.style.width 获得不包含 padding 和 border 的值
4.style.width 是可读写属性,可以获取也可以赋值,所以
想给元素更改值,则需要用style改变
因为平时都给元素注册触摸事件,所以重点记住targetTouches

3.元素可视区client系列

-- 通过 client 系列的相关属性可以动态的得到该元素的边框大小,元素大小等。

client系列属性

作用

element.clientTop

返回元素上边框的大小

element.clientLeft

返回元素左边框的大小

element.clientWidth

返回自身包括 padding、内容区的宽度,不含边框、返回值无单位

element.clientHeight

返回自身包括 padding、内容区的高度,不含边框、返回值无单位

4.补充

4.1.立即执行函数

(function(){})() 或者(function(){}())
主要作用:创建一个独立的作用域,避免了命名冲突问题。

4.2.load事件
下面这三种情况都会刷新页面,都会触发load事件
	1.a标签的超链接
	2.F5或者刷新按钮(强制刷新)
	3.前进或后退
4.3.pageshow事件
pageshow 事件在页面显示的时候触发,无论页面是否来自缓存,在重新加载页面中,pageshow 会在 load 事件触发后触发,
根据事件对象中的 persisted 来判断是否是缓存中的页面触发的 pageshow 事件。(这个事件给 window 添加)

5.元素滚动scroll系列

使用 scroll 系列相关属性可以动态的得到该元素的大小,滚动距离

scroll系列属性

作用

element.scrollTop

返回被卷去的上侧的距离,返回数值不带单位

element.scrollLeft

返回被卷去的左侧距离,返回数值不带单位

element.scrollWidth

返回自身是实际的宽度。不含边框

element.scrollHeight

返回自身实际的高度,不含边框

提示:
页面被卷去的头部:可以通过window.pageYoffset获得
页面被卷去的左侧:可以通过window.pageXoffset获得

6.三大系列总结

三大系列大小对比

作用

element.offsetWidth

返回自身包括padding、边框、内容区的宽度,返回值不带单位

element.clientWidth

返回自身包括pading、内容区的宽度,返回值不带单位

element.scrollWidth

返回自身实际的宽度

主要用法:
1.offset 系列经常用于获得元素位置(offsetLeft、offsetTop)
2.client 经常用于获取元素大小(clientWidht、clientHeight)
3.scroll 经常用于获取滚动距离(scrollTop、scrollLeft)

7.mouseenter 和 mouseover 的区别

都是移动到元素上就会触发
1.mouseover 经过自身盒子会触发,经过子盒子还会触发
2.mouseenter 只会经过自身盒子触发(不会冒泡)
3.跟 mouseenter 搭配鼠标离开 mouseleave 同样不会冒泡

8.动画函数封装

8.1.缓动效果原理
核心算法:(目标值-现在的位置)/ 10 作为每次移动的距离步长
步长值需要用 math.ceil() 向上取整
步长值如果是正值,则步长值向上去整。
步长值如果是负值,则步长向下取整。