当前位置:首页 > JavaScript

js 实现 transition

2026-04-06 12:14:43JavaScript

使用 CSS 和 JavaScript 实现过渡效果

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

通过修改内联样式触发过渡

通过 JavaScript 直接修改元素的 style 属性,配合 CSS 定义的过渡属性实现动画效果。

/* CSS 部分 */
.box {
  width: 100px;
  height: 100px;
  background: blue;
  transition: all 0.5s ease;
}
// JavaScript 部分
const box = document.querySelector('.box');
box.style.width = '200px'; // 触发宽度过渡动画
box.style.backgroundColor = 'red'; // 触发颜色过渡动画

通过切换类名触发过渡

定义包含目标样式的 CSS 类,通过 JavaScript 动态添加或移除类来触发过渡。

/* CSS 部分 */
.box {
  width: 100px;
  height: 100px;
  background: blue;
  transition: all 0.5s ease;
}

.box.active {
  width: 200px;
  background: red;
}
// JavaScript 部分
const box = document.querySelector('.box');
box.classList.add('active'); // 添加类触发过渡

使用 transitionend 事件监听过渡完成

通过监听 transitionend 事件,可以在过渡动画完成后执行回调函数。

box.addEventListener('transitionend', (e) => {
  console.log('过渡完成', e.propertyName); // 输出被过渡的属性名
});

动态设置过渡属性

通过 JavaScript 动态修改过渡的持续时间、缓动函数等属性。

js 实现 transition

box.style.transition = 'width 1s cubic-bezier(0.4, 0, 0.2, 1)';
box.style.width = '300px'; // 触发自定义过渡效果

注意事项

  • 性能优化:避免过渡属性设置为 all,明确指定需要过渡的属性(如 widthopacity)。
  • 硬件加速:对 transformopacity 使用过渡可获得更好的性能。
  • 兼容性transitionend 事件在不同浏览器中可能需要前缀(如 webkitTransitionEnd)。

通过结合 CSS 的 transition 属性和 JavaScript 的动态操作,可以实现灵活的交互式过渡效果。

标签: jstransition
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似:…