js 6, 实现循环动画,(1)图片由隐藏状态用 2 秒淡入 (2)用2秒时间 图片向右移动 200px(3)用 2 秒时间淡出(4) 隐藏状态维持2秒(5) 用2秒时间淡入《6)用2秒时间向左移动200px 回到起点(7)用2 秒时间淡出。然后重复第(1)到第(7)步 提示:猪环动画实现,将所有动画过程写在自定义西数里,然后自己调用自己。在启动西数中调用该自定义函数。。
时间: 2024-01-22 13:18:19 浏览: 25
可以使用JavaScript中的setTimeout()函数来实现循环动画。具体实现步骤如下:
1. 定义一个函数,用于执行动画效果。
2. 在函数中,使用DOM操作或CSS样式来实现图片的淡入、移动和淡出效果。
3. 在函数中,使用setTimeout()函数来控制动画效果的时间间隔。
4. 在函数末尾,使用setTimeout()函数再次调用该函数,以实现循环动画效果。
下面是示例代码:
```javascript
function loopAnimation() {
// 获取图片元素
var img = document.getElementById("myImage");
// 图片由隐藏状态用2秒淡入
img.style.opacity = 0;
img.style.display = "block";
var fadeIn = setInterval(function() {
if (img.style.opacity < 1) {
img.style.opacity = parseFloat(img.style.opacity) + 0.01;
} else {
clearInterval(fadeIn);
}
}, 20);
// 用2秒时间图片向右移动200px
var moveRight = setInterval(function() {
var currentLeft = parseInt(img.style.left) || 0;
if (currentLeft < 200) {
img.style.left = currentLeft + 2 + "px";
} else {
clearInterval(moveRight);
// 用2秒时间淡出
var fadeOut = setInterval(function() {
if (img.style.opacity > 0) {
img.style.opacity = parseFloat(img.style.opacity) - 0.01;
} else {
clearInterval(fadeOut);
// 隐藏状态维持2秒
setTimeout(function() {
// 用2秒时间淡入
img.style.opacity = 0;
img.style.display = "none";
var fadeIn2 = setInterval(function() {
if (img.style.opacity < 1) {
img.style.opacity = parseFloat(img.style.opacity) + 0.01;
} else {
clearInterval(fadeIn2);
}
}, 20);
// 用2秒时间向左移动200px回到起点
var moveLeft = setInterval(function() {
var currentLeft = parseInt(img.style.left) || 0;
if (currentLeft > 0) {
img.style.left = currentLeft - 2 + "px";
} else {
clearInterval(moveLeft);
// 用2秒时间淡出
var fadeOut2 = setInterval(function() {
if (img.style.opacity > 0) {
img.style.opacity = parseFloat(img.style.opacity) - 0.01;
} else {
clearInterval(fadeOut2);
// 循环调用函数
setTimeout(loopAnimation, 2000);
}
}, 20);
}
}, 10);
}, 2000);
}
}, 20);
}
}, 10);
}
// 在启动函数中调用loopAnimation()函数
window.onload = function() {
loopAnimation();
}
```
在HTML页面中,需要将图片元素定义为绝对定位,并设置left属性为0,如下所示:
```html
<img id="myImage" src="myimage.jpg" style="position: absolute; left: 0;">
```
注意,在动画效果实现过程中,需要控制setTimeout()函数的时间间隔,来达到所需的动画效果。