当前位置:首页 > 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的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现vr

js实现vr

使用WebXR API实现VR体验 WebXR是浏览器中实现VR和AR体验的标准API,它取代了早期的WebVR。现代浏览器如Chrome、Edge和Firefox已支持WebXR。 // 初始化W…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…