js 实现fadein
实现 fadeIn 效果的方法
在 JavaScript 中,可以通过多种方式实现元素的淡入(fadeIn)效果。以下是几种常见的方法:
使用 CSS 过渡(transition)配合 JavaScript
通过添加 CSS 过渡属性,结合 JavaScript 修改透明度实现淡入效果。
.fade-element {
opacity: 0;
transition: opacity 0.5s ease-in-out;
}
function fadeIn(element) {
element.classList.add('fade-element');
setTimeout(() => {
element.style.opacity = '1';
}, 10);
}
使用纯 JavaScript 动画
通过 requestAnimationFrame 逐帧修改透明度实现平滑的淡入效果。
function fadeIn(element, duration = 500) {
let start = null;
element.style.opacity = '0';
element.style.display = 'block';
function step(timestamp) {
if (!start) start = timestamp;
const progress = timestamp - start;
const opacity = Math.min(progress / duration, 1);
element.style.opacity = opacity;
if (progress < duration) {
window.requestAnimationFrame(step);
}
}
window.requestAnimationFrame(step);
}
使用 jQuery 的 fadeIn 方法
如果项目中已经使用 jQuery,可以直接调用其内置的 fadeIn 方法。
$('#element').fadeIn(500); // 500ms 淡入时间
使用 CSS 动画(animation)
通过定义 CSS 关键帧动画,用 JavaScript 触发动画。

@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.fade-in-animation {
animation: fadeIn 0.5s forwards;
}
function fadeIn(element) {
element.classList.add('fade-in-animation');
}
注意事项
- 淡入前确保元素初始状态为 opacity: 0 和 display: none
- 考虑浏览器兼容性,特别是较旧版本
- 对于复杂动画,CSS 实现的性能通常优于 JavaScript
- 淡入完成后可能需要移除添加的类名






