用js写一个仿flash动画
时间: 2023-12-10 11:04:47 浏览: 80
JavaScript 写的 Flash+XML仿淘宝首页焦点图代码
由于 Flash 已经被大部分浏览器废弃,并且使用 Flash 动画也存在诸多问题,建议使用 HTML5 和 CSS3 来代替 Flash 动画。以下是一个用 HTML5 和 CSS3 实现的简单动画示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Flash Animation Demo</title>
<style>
#ball {
position: absolute;
width: 50px;
height: 50px;
border-radius: 50%;
background-color: red;
animation-name: move;
animation-duration: 2s;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
@keyframes move {
0% {
top: 0;
left: 0;
}
50% {
top: 200px;
left: 400px;
}
100% {
top: 0;
left: 0;
}
}
</style>
</head>
<body>
<div id="ball"></div>
</body>
</html>
```
在此示例中,我们使用 CSS3 的 `@keyframes` 规则来定义动画效果,并通过 `animation-*` 属性指定动画的相关属性,包括动画名称、动画时长、动画时间函数和动画迭代次数等。然后将元素的位置设置为绝对定位,通过 `animation-name` 属性将动画应用到元素上。
当然,如果你非要使用 JavaScript 来实现 Flash 动画,你可以使用 `setInterval` 或 `requestAnimationFrame` 方法来实现动画效果。以下是一个简单的示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Flash Animation Demo</title>
<style>
#ball {
position: absolute;
width: 50px;
height: 50px;
border-radius: 50%;
background-color: red;
}
</style>
</head>
<body>
<div id="ball"></div>
<script>
var ball = document.getElementById('ball');
var x = 0, y = 0, vx = 5, vy = 3;
setInterval(function() {
x += vx;
y += vy;
if (x <= 0 || x + ball.offsetWidth >= window.innerWidth) {
vx = -vx;
}
if (y <= 0 || y + ball.offsetHeight >= window.innerHeight) {
vy = -vy;
}
ball.style.left = x + 'px';
ball.style.top = y + 'px';
}, 30);
</script>
</body>
</html>
```
在此示例中,我们使用 `setInterval` 方法每隔一定时间改变元素的位置,从而实现动画效果。其中,变量 `vx` 和 `vy` 分别表示元素在水平和竖直方向上的速度,而 `x` 和 `y` 则表示元素的当前位置。当元素到达窗口边缘时,我们将速度取反,使元素反弹回来。
阅读全文