使用定时器來实现延时完成左右移动的花式流水灯的代码
时间: 2024-11-22 10:41:48 浏览: 22
在JavaScript中,你可以使用`setInterval`函数来实现一个简单的花式流水灯效果,结合定时器来控制灯光的左右移动。假设我们有三个元素代表灯泡,我们可以这样做:
```javascript
// 假设灯泡数组
let lights = document.querySelectorAll('.light');
let direction = 'left'; // 初始方向
function moveLights() {
if (direction === 'left') { // 向左移动
let firstLight = lights[0];
if (firstLight.offsetLeft == 0) {
direction = 'right'; // 当到达左边边界时转向右边
} else {
firstLight.style.left = (firstLight.offsetLeft - 5) + 'px'; // 缩小步长防止闪烁
}
} else { // 向右移动
let lastLight = lights[lights.length - 1];
if (lastLight.offsetLeft == document.body.offsetWidth) {
direction = 'left'; // 当到达右边边界时转向左边
} else {
lastLight.style.left = (lastLight.offsetLeft + 5) + 'px'; // 扩大步长增加动感
}
}
}
// 设置定时器每秒执行moveLights函数
setInterval(moveLights, 1000); // 1000毫秒等于1秒
// 可能需要一个停止动画的方法,如果需要的话
function stopMoving() {
clearInterval(setIntervalId);
}
// 要开始或停止动画时,可以调用stopMoving()
```
在这个例子中,我们首先设置了一个初始方向,然后每秒更新灯泡的位置,直到它们到达边缘并改变方向。这个简单模型可能无法精确模拟复杂的流水灯动画,但它提供了一个基本的概念。
阅读全文