2021-05-23|2021-05-23 做游戏 必须精通的元素标签
元素偏移量offset系列
1.1offset概述
offset翻译过来就是偏移量,我们使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。
获得元素的距离带有定位父元素的位置
获得元素自身的大小(宽度高度)
注意: 返回的数值都不带单位
文章图片
1.2offset 与 style 区别
offset
offset 可以得到任意样式表中的样式值
offset 系列获得的数值是没有单位的
offsetWidth 包含padding+border+width
offsetWidth 等属性是只读属性,只能获取不能赋值
所以,我们想要获取元素大小位置,用offset更合适
style
style 只能得到行内样式表中的样式值
style.width 获得的是带有单位的字符串
style.width 获得不包含padding和border 的值
style.width 是可读写属性,可以获取也可以赋值
所以,我们想要给元素更改值,则需要用style改变
1.3元素可视区 client 系列
client系列的相关属性可以动态的得到该元素的边框大小、元素大小等
文章图片
1.4元素滚动 scroll 系列
scroll 系列的相关属性可以动态的得到该元素的大小、滚动距离等。
文章图片
1.offset系列 经常用于获得元素位置offsetLeftoffsetTop
2.client经常用于获取元素大小clientWidth clientHeight
3.scroll 经常用于获取滚动距离 scrollTopscrollLeft
4.注意页面滚动的距离通过 window.pageXOffset获得
1.5. mouseenter 和mouseover的区别
- 当鼠标移动到元素上时就会触发mouseenter 事件
- 类似 mouseover,它们两者之间的差别是
【2021-05-23|2021-05-23 做游戏 必须精通的元素标签】- mouseover 鼠标经过自身盒子会触发,经过子盒子还会触发。mouseenter只会经过自身盒子触发
- 之所以这样,就是因为mouseenter不会冒泡
- 跟mouseenter搭配鼠标离开 mouseleave同样不会冒泡
function animate(obj, target) {
// 当我们不断的点击按钮,这个元素的速度会越来越快,因为开启了太多的定时器
// 解决方案就是 让我们元素只有一个定时器执行
// 先清除以前的定时器,只保留当前的一个定时器执行
clearInterval(obj.timer);
obj.timer = setInterval(function() {
if (obj.offsetLeft >= target) {
// 停止动画 本质是停止定时器
clearInterval(obj.timer);
}
obj.style.left = obj.offsetLeft + 1 + 'px';
}, 30);
}
推荐阅读
- 【挑战日更】Day6.《终身学习.10个你必须掌握的未来生存法则》摘录之三
- Day10_要想看起来毫不费力,必须付出超乎常人的努力
- vue组件中为何data必须是一个函数()
- 公司注册好后,每月每季度每年必须要干的一些事
- 独自一人
- WordPress安装后必须要做的10件事
- 抗衰,25岁之后必须要做的事情
- 2021-05-23挥泪别“杂交水稻之父”袁隆平院士
- 【诗025】神秘的月季花——自认为写得最不好,却必须要写的
- 大学生必须绕过的4个坑!|大学生必须绕过的4个坑! 毕业两年年薪30万的学姐想对你说