gpt4 book ai didi

javascript - 使用Javascript对 Angular 线来回移动元素

转载 作者:行者123 更新时间:2023-12-01 15:35:33 26 4
gpt4 key购买 nike

我试图让我的 div 元素在容器内无限地来回移动。
目标是仅使用 Java Script,不使用 CSS 动画、jQuery 等。

const container = document.getElementById('container');
const box = document.getElementById('box');
let t = setInterval(move, 1);
let pos = 1;

function move() {
box.style.left = pos + 'px';
box.style.top = pos + 'px';
pos++;
if (pos === 150) {
clearInterval(t)
}


}
#container{
width: 200px;
height: 200px;
background-color: green;
position: relative;
}

#box{
width: 50px;
height: 50px;
background-color: red;
position: absolute;
animation-direction: alternate;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Animation</title>
<link href="animation.css" rel="stylesheet">
<script defer src="animation.js"></script>
</head>
<body>
<div id="container">
<div id="box"></div>
</div>

</body>
</html>


所以这里是代码。如您所见,我使用相对/绝对位置来使元素通过 setInterval 函数移动。但是,当我尝试将其反转回“它的 Angular 落”时,它就行不通了。老实说,我已经尝试了一些东西,但是如果不使用任何其他工具,我真的找不到解决方案。
提前致谢。

最佳答案

您需要考虑如下 bool 变量来增加/减少值:

const container = document.getElementById('container');
const box = document.getElementById('box');
let t = setInterval(move, 1);
let pos = 1;
let test = true;

function move() {
box.style.left = pos + 'px';
box.style.top = pos + 'px';

if (test)
pos++; /* move down */
else
pos--; /* move up */

/* update the direction when you reach the top or bottom limit*/
if (pos >= 150)
test = false
else if (pos <= 0)
test = true;
}
#container {
width: 200px;
height: 200px;
background-color: green;
position: relative;
}

#box {
width: 50px;
height: 50px;
background-color: red;
position: absolute;
}
<div id="container">
<div id="box"></div>
</div>

关于javascript - 使用Javascript对 Angular 线来回移动元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62385449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com