DOM元素位置,滚动位置和鼠标事件位置相关属性函数总结

前言:前段时间经常被这些参数搞混,在此总结一下,画了一张图,希望能对大家有所帮助

getBoundingClientRect相关

  • left 元素的左边 距离 可视窗口左边的距离
  • right 元素的右边 距离 可视窗口左边的距离
  • top 元素的上边 距离 可视窗口顶部的距离
  • bottom 元素的下边 距离 可视窗口顶部的距离
  • width 元素的宽
  • height 元素的高
  • x/y 目前来看与let/top相同

图片描述

鼠标相关事件位置属性

  • screenX/screenY 鼠标点击位置距离屏幕左上角的位置
  • clientX/clentY 鼠标点击位置距离可视窗口左上角的位置
  • pageX/pageY 鼠标点击位置距离文档左上角的位置
  • offsetX/offsetY 鼠标点击位置距离当前元素的边框内的位置
  • layerX/layerY 鼠标点击位置 距离 当前元素的距离最近的非static的元素的位置

注:此图来自网上
图片描述

滚动相关

  • scrollTop 元素垂直方向被卷去的像素的距离
  • scrollLeft 元素水平方向被卷去的像素的距离
  • window.scrollX(window.pageXOffset) 文档/页面水平方向滚动的像素值
  • window.scrollY(window.pageYOffset) 文档/页面垂直方向滚动的像素值
  • scrollTo(xpos, ypos) 将内容滚动到指定的坐标
  • scrollBy(xnum, ynum) 将内容向右下滚动的像素数

元素大小相关

  • offsetWidth=border+padding+width
  • offsetHeight=border+padding+height
  • clientWidth=padding+width-滚动条宽度
  • clientHeight=padding+height-滚动条宽度
  • scrollWidth=padding+包含内容的完全宽度
  • scrollHeight=padding+包含内容的完全高度

示例图
图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用CSS3的transition属性和transform属性来实现DOM元素位置改变的动画,从而实现从快到慢的动画效果。 具体步骤如下: 1. 首先,需要将要进行动画的DOM元素的初始位置设置为相对定位(position: relative),这样才能让它在页面中移动。 2. 然后,设置transition属性,用来定义动画的过渡效果。可以设置transition-duration(动画持续时间)、transition-timing-function(动画时间函数)、transition-delay(动画延迟时间)等属性,来控制动画的执行方式。 3. 接着,使用transform属性来改变DOM元素位置。可以使用translateX()或translateY()函数来移动元素,也可以使用rotate()函数来旋转元素。同时,也可以设置transform-origin属性来改变元素的旋转中心点。 4. 最后,使用JavaScript来触发动画效果。可以通过改变DOM元素的样式来实现动画效果,比如改变其left、top等属性的值。 下面是一个简单的示例代码: HTML: ``` <div class="box"></div> ``` CSS: ``` .box { width: 100px; height: 100px; background-color: red; position: relative; transition: transform 1s ease-in-out; } .box:hover { transform: translateX(200px); } ``` JavaScript: ``` const box = document.querySelector('.box'); box.addEventListener('mouseenter', () => { box.style.transform = 'translateX(200px)'; }); ``` 在上面的示例中,当鼠标移入.box元素时,会触发动画效果,使元素从左侧移动到右侧。其中,transition属性定义了动画的执行方式,transform属性用来改变元素位置,JavaScript代码用来触发动画效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值