探究-加了动画移动 offsetTop却没有变化
给div盒子加了translateY,但是在移动的过程中offsetTop的数值却没有变化,跟我预想的很不一致
于是去查了MDN,https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLElement/offsetTop
这一页没说明白,又点进规范看了看,
https://drafts.csswg.org/cssom-view/#dom-htmlelement-offsettop
规范里特地提到了ignoring any transforms,忽略所有transform,撞枪口上了...
而且是忽略元素本身及其祖先的transform
//css部分
<style>
* {
margin: 0;
padding: 0;
}
.box {
width: 100px;
height: 100px;
background-color: pink;
margin: 100px 300px;
padding: 10px;
border: 10px solid blue;
}
@keyframes move {
0%{
}
100%{
transform: translateY(100px);
}
}
</style>
<div class="box"></div>
//js部分
<script>
var box = document.querySelector('.box');
var boxX = box.offsetLeft;
var boxY = box.offsetTop;
box.addEventListener('mousemove', function (e) {
console.log('盒子偏移量:(' + boxX + ',' + boxY + ')');
});
box.addEventListener("mouseover",function(){
box.style="animation: move 5s ;"
})
</script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」