当前位置:首页 > JavaScript

js 实现 transition

2026-03-14 18:26:24JavaScript

使用 CSS Transition 实现动画效果

在 JavaScript 中实现 CSS Transition 主要涉及动态添加或修改元素的样式属性。CSS Transition 允许在属性变化时平滑过渡。

// 获取元素
const element = document.getElementById('myElement');

// 设置过渡属性
element.style.transition = 'all 0.3s ease-in-out';

// 改变样式触发过渡
element.style.width = '200px';
element.style.backgroundColor = 'blue';

监听 Transition 事件

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

element.addEventListener('transitionend', function(event) {
    console.log('Transition ended:', event.propertyName);
    // 执行过渡结束后的操作
});

动态控制 Transition

通过 JavaScript 可以动态控制过渡效果的开启和关闭。

// 禁用过渡
element.style.transition = 'none';

// 立即应用样式变化
element.style.opacity = '0';

// 重新启用过渡
setTimeout(() => {
    element.style.transition = 'opacity 0.5s ease';
    element.style.opacity = '1';
}, 100);

多属性过渡控制

可以为不同属性设置不同的过渡时间和效果。

js 实现 transition

element.style.transition = 'width 0.3s ease, height 0.5s linear, opacity 1s';

使用 classList 管理过渡

通过添加和移除 CSS 类来管理过渡效果更加清晰。

CSS:

js 实现 transition

.box {
    width: 100px;
    height: 100px;
    background: red;
    transition: all 0.3s;
}

.box.active {
    width: 200px;
    height: 200px;
    background: blue;
}

JavaScript:

const box = document.querySelector('.box');
box.classList.add('active'); // 触发过渡

链式过渡效果

通过 JavaScript 可以实现连续的过渡效果。

function animateElement(element) {
    element.style.transition = 'transform 0.5s ease';
    element.style.transform = 'translateX(100px)';

    setTimeout(() => {
        element.style.transition = 'transform 0.5s ease, background 0.3s';
        element.style.transform = 'translateX(100px) translateY(50px)';
        element.style.background = 'green';
    }, 500);
}

响应式过渡

根据窗口大小或其他条件动态调整过渡效果。

window.addEventListener('resize', function() {
    if (window.innerWidth < 768) {
        element.style.transition = 'all 0.2s ease';
    } else {
        element.style.transition = 'all 0.5s ease';
    }
});

标签: jstransition
分享给朋友:

相关文章

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前年…

js 实现vue

js 实现vue

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

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现祖玛

js实现祖玛

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