当前位置:首页 > 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 实现平滑动画。

js实现淡入效果

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() 方法。

js实现淡入效果

$('#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'
  }
);

淡入完成后执行回调函数

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

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实现vue路由

js实现vue路由

Vue路由基础实现 使用Vue Router实现前端路由需要先安装并配置路由库。Vue Router是Vue.js官方的路由管理器。 安装Vue Router: npm install vue-r…

利用js实现

利用js实现

使用 JavaScript 实现 在 JavaScript 中,可以通过多种方式实现功能,具体取决于需求。以下是几种常见的方法: 方法一:使用原生 JavaScript // 示例代码 funct…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: fun…