javascript – 在translate3d之后获取div位置

Javascript中,当我通过translate3d方法使用gpu移动元素时,元素样式左侧位置根本不会改变.因为cpu甚至不知道发生了任何动作.

在通过translate3d移动元素后,如何跟踪元素的新位置?

最佳答案
使用Element.getBoundingClientRect()获取元素坐标

这里只是一个从CSS3翻译(动画)元素中检索.left Rect属性的小例子:

const box = document.getElementById('box');
const printer = document.getElementById('printer');
const printBoxRectLeft = () => {
  printer.textContent = box.getBoundingClientRect().left;
  requestAnimationFrame(printBoxRectLeft);
};

printBoxRectLeft();
#box{
  width:30px; height:30px; background:red;
  animation: animX 3s infinite alternate;
}
@keyframes animX { to{ transform:translateX(300px); }}

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些