当前位置:首页 > JavaScript

js实现过渡

2026-02-02 04:38:43JavaScript

使用 CSS transition 属性实现过渡效果

在 JavaScript 中可以通过修改元素的 CSS 属性来实现过渡效果,结合 CSS 的 transition 属性

通过修改元素的 class 或直接设置 style 来触发过渡:

js实现过渡

const element = document.getElementById('myElement');
element.style.transition = 'all 0.3s ease';
element.style.width = '200px';

使用 Web Animations API

现代浏览器支持 Web Animations API,可以直接用 JavaScript 创建和控制动画:

const element = document.getElementById('myElement');
element.animate([
  { opacity: 0 },
  { opacity: 1 }
], {
  duration: 1000,
  easing: 'ease-in-out'
});

使用 requestAnimationFrame 实现自定义过渡

对于需要更精细控制的过渡效果,可以使用 requestAnimationFrame:

js实现过渡

function animate({ duration, timing, draw }) {
  let start = performance.now();

  requestAnimationFrame(function animate(time) {
    let timeFraction = (time - start) / duration;
    if (timeFraction > 1) timeFraction = 1;

    const progress = timing(timeFraction);
    draw(progress);

    if (timeFraction < 1) {
      requestAnimationFrame(animate);
    }
  });
}

animate({
  duration: 1000,
  timing: function(timeFraction) {
    return timeFraction;
  },
  draw: function(progress) {
    element.style.width = progress * 100 + 'px';
  }
});

使用 CSS 类切换实现过渡

通过添加/移除 CSS 类来触发过渡效果:

.box {
  transition: all 0.3s ease;
}
.box.active {
  transform: scale(1.2);
  background-color: #ff0000;
}
const box = document.querySelector('.box');
box.addEventListener('click', () => {
  box.classList.toggle('active');
});

使用 GSAP 动画库

GSAP 是一个专业的 JavaScript 动画库,可以实现复杂的过渡效果:

gsap.to(".box", {
  duration: 1,
  x: 100,
  rotation: 360,
  ease: "bounce.out"
});

标签: js
分享给朋友:

相关文章

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…