JavaScript 实现动画效果有多种方式,以下是一些基础概念和相关技术:
@keyframes 规则和 animation 属性来实现动画效果。CSS 动画是最简单且性能较好的一种方式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Animation</title>
<style>
@keyframes slideIn {
from {
transform: translateX(-100%);
}
to {
transform: translateX(0);
}
}
.box {
width: 100px;
height: 100px;
background-color: red;
animation: slideIn 2s ease-in-out infinite;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>requestAnimationFramerequestAnimationFrame 是浏览器提供的优化动画的 API,能够确保动画在每一帧都得到更新。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JavaScript Animation</title>
<style>
.box {
width: 100px;
height: 100px;
background-color: blue;
position: absolute;
left: 0;
}
</style>
</head>
<body>
<div class="box" id="box"></div>
<script>
const box = document.getElementById('box');
let start;
function step(timestamp) {
if (!start) start = timestamp;
const progress = timestamp - start;
box.style.left = Math.min(progress / 10, 200) + 'px';
if (progress < 2000) {
requestAnimationFrame(step);
}
}
requestAnimationFrame(step);
</script>
</body>
</html>transform 和 opacity 属性进行动画,因为这些属性可以通过 GPU 加速;避免在动画过程中频繁重排和重绘。通过上述方法,可以有效地实现各种复杂的动画效果,并确保其在不同环境和设备上的良好表现。
没有搜到相关的文章