【发布时间】:2022-01-24 20:48:38
【问题描述】:
https://codepen.io/skinaqua123/pen/WNZZgEy
<div id="container">
<div id="box"></div>
</div>
#container {
background-color: black;
width: 800px;
height: 500px;
position: relative;
}
#box {
width: 50px;
height: 50px;
background-color: yellow;
position: absolute;
top: 0px;
transition: top 0.5s ease-out 0s;
}
html {
height: 100%;
max-height: 100%;
}
const box = document.querySelector("#box");
console.log(box.offsetTop);
const fallingMovement = setInterval(() => {
box.style.top = box.offsetTop + 50 + "px";
if (box.offsetTop >= 500 - 50 - 50) {
clearInterval(fallingMovement);
}
}, 1000);
您好,我正在为我的 html 游戏测试一些代码。我想要一个盒子掉下来,但不要超出包装 div。
我的包装 div(容器)的高度是 500px,我的盒子是 50px。我认为它应该在顶部为 450px (500-50) 时停止。
但实际上,它仍然比应有的多 50 像素。当我将其更改为 400 时,它可以正常工作。
为什么会这样?即使我调用了clearInterval,我给setInterval 的函数是否会再次执行?
谢谢
【问题讨论】:
标签: javascript html css setinterval