当前位置:首页 > JavaScript

用js实现transition

2026-02-03 02:59:16JavaScript

使用 CSS 和 JavaScript 实现过渡效果

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

直接修改内联样式

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

用js实现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 中定义的过渡效果。

用js实现transition

<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 定义动画。

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实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现瀑布流

js实现瀑布流

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

jquery js

jquery js

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

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…