当前位置:首页 > JavaScript

用js实现transition

2026-02-03 02:59:16JavaScript

使用 CSS 和 JavaScript 实现过渡效果

在 JavaScript 中实现 CSS 的 transition 效果,可以通过直接操作元素的样式或类名来触发过渡。以下是几种常见方法:

直接修改内联样式

通过 JavaScript 动态修改元素的 style 属性,结合 CSS 中定义的 transition 属性实现过渡效果。

<style>
  .box {
    width: 100px;
    height: 100px;
    background: red;
    transition: all 0.5s ease;
  }
</style>

<div class="box"></div>

<script>
  const box = document.querySelector('.box');
  box.addEventListener('click', () => {
    box.style.width = '200px';
    box.style.backgroundColor = 'blue';
  });
</script>

通过切换类名触发过渡

通过添加或移除类名触发 CSS 中定义的过渡效果。

<style>
  .box {
    width: 100px;
    height: 100px;
    background: red;
    transition: all 0.5s ease;
  }
  .box.active {
    width: 200px;
    background: blue;
  }
</style>

<div class="box"></div>

<script>
  const box = document.querySelector('.box');
  box.addEventListener('click', () => {
    box.classList.toggle('active');
  });
</script>

使用 requestAnimationFrame 实现动画

对于更复杂的过渡效果,可以通过 requestAnimationFrame 逐帧修改属性。

const box = document.querySelector('.box');
let width = 100;

function animate() {
  width += 1;
  box.style.width = `${width}px`;

  if (width < 200) {
    requestAnimationFrame(animate);
  }
}

box.addEventListener('click', animate);

使用 Web Animations API

现代浏览器支持 Web Animations API,可以直接通过 JavaScript 定义动画。

用js实现transition

const box = document.querySelector('.box');
box.addEventListener('click', () => {
  box.animate([
    { width: '100px', backgroundColor: 'red' },
    { width: '200px', backgroundColor: 'blue' }
  ], {
    duration: 500,
    easing: 'ease'
  });
});

注意事项

  1. 性能优化:优先使用 CSS transitiontransform,硬件加速性能更好。
  2. 兼容性:Web Animations API 在旧浏览器中可能需要 polyfill。
  3. 事件监听:过渡结束后可通过 transitionend 事件触发回调。
box.addEventListener('transitionend', () => {
  console.log('过渡完成');
});

标签: jstransition
分享给朋友:

相关文章

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…