📜  js 动画 - Javascript (1)

📅  最后修改于: 2023-12-03 15:02:23.090000             🧑  作者: Mango

JS 动画 - JavaScript

简介

JavaScript 是一种强大的脚本语言,可以创建各种类型的动画效果。JavaScript 动画通常通过改变元素的位置、大小、颜色和透明度来实现。在本文中,我们将学习如何使用 JavaScript 实现简单的动画。

前置知识
  • HTML
  • CSS
  • JavaScript
实现动画的方法
1. 使用 CSS 的 transition 属性

CSS 的 transition 属性可以让元素在改变属性时平滑地过渡。比如下面代码可以让元素在改变宽高时有一个过渡效果:

.box {
  transition: width 1s ease-in-out;
}

.box:hover {
  width: 200px;
  height: 200px;
}
2. 使用 CSS 的 animation 属性

CSS 的 animation 属性可以让元素按照规定的时间段执行一系列动画,比如下面的代码可以让元素一直旋转:

.box {
  animation: rotate 2s infinite linear;
}

@keyframes rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
3. 使用 setInterval 方法

使用 setInterval 方法可以让 JavaScript 每隔一定时间执行一段代码。比如下面的代码可以让元素每隔一段时间位置改变一次:

let box = document.querySelector('.box');
let x = 0;
setInterval(function() {
  x += 10;
  box.style.transform = 'translateX(' + x + 'px)';
}, 100);
4. 使用 requestAnimationFrame 方法

使用 requestAnimationFrame 方法可以让浏览器每隔一帧执行一段代码,这种方式比 setInterval 方法更加优化。比如下面的代码可以让元素每隔一帧位置改变一次:

let box = document.querySelector('.box');
let x = 0;

function animate() {
  x += 10;
  box.style.transform = 'translateX(' + x + 'px)';
  requestAnimationFrame(animate);
}

animate();
结论

JavaScript 动画可以通过多种方式实现,其中 requestAnimationFrame 方法是最优的方式。对于简单的动画效果,我们可以使用 CSS 的 transition 和 animation 属性,对于复杂的动画效果,我们可以使用 JavaScript 实现。