当前位置:首页 > JavaScript

js实现淡入效果

2026-04-07 10:27:28JavaScript

使用 CSS transition 实现淡入效果

通过添加 CSS 的 transition 属性和 opacity 属性,结合 JavaScript 修改类名实现淡入效果。

.fade-in {
  opacity: 1;
  transition: opacity 0.5s ease-in;
}

.hidden {
  opacity: 0;
}
const element = document.getElementById('target');
element.classList.remove('hidden');
element.classList.add('fade-in');

使用 requestAnimationFrame 实现淡入效果

通过 JavaScript 动态修改 opacity 值,利用 requestAnimationFrame 实现平滑动画。

function fadeIn(element, duration = 500) {
  let opacity = 0;
  const step = 16 / duration; // 每帧增加的透明度
  element.style.opacity = opacity;
  element.style.display = 'block';

  function animate() {
    opacity += step;
    if (opacity > 1) {
      opacity = 1;
      element.style.opacity = opacity;
      return;
    }
    element.style.opacity = opacity;
    requestAnimationFrame(animate);
  }

  requestAnimationFrame(animate);
}

fadeIn(document.getElementById('target'));

使用 jQuery 实现淡入效果

如果项目中已引入 jQuery,可以使用其内置的 fadeIn() 方法。

$('#target').fadeIn(500); // 500毫秒的淡入时间

使用 Web Animations API 实现淡入效果

现代浏览器支持的 Web Animations API 提供了更简洁的实现方式。

const element = document.getElementById('target');
element.animate(
  [
    { opacity: 0 },
    { opacity: 1 }
  ],
  {
    duration: 500,
    fill: 'forwards'
  }
);

淡入完成后执行回调函数

为淡入效果添加回调函数,在动画完成后执行特定操作。

js实现淡入效果

function fadeInWithCallback(element, duration, callback) {
  element.style.opacity = 0;
  element.style.display = 'block';

  let opacity = 0;
  const step = 16 / duration;

  function animate() {
    opacity += step;
    if (opacity >= 1) {
      element.style.opacity = 1;
      if (callback) callback();
      return;
    }
    element.style.opacity = opacity;
    requestAnimationFrame(animate);
  }

  requestAnimationFrame(animate);
}

fadeInWithCallback(document.getElementById('target'), 500, () => {
  console.log('淡入动画完成');
});

每种方法适用于不同场景,CSS transition 方法最简单,requestAnimationFrame 提供更精细控制,jQuery 适合已有 jQuery 的项目,Web Animations API 则是现代浏览器的原生解决方案。

标签: 效果js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

h5所能实现的效果

h5所能实现的效果

H5能实现的效果 H5(HTML5)作为最新的HTML标准,具备强大的功能和丰富的API支持,能够实现多种现代Web应用效果。以下是H5的主要能力分类: 多媒体支持 H5原生支持音频和视频播放,无需…

vue实现预览效果

vue实现预览效果

实现预览效果的常见方法 在Vue中实现预览效果可以通过多种方式完成,以下列举几种典型场景和对应的实现方案: 图片/文件预览 使用<input type="file">结合FileRead…