当前位置:首页 > JavaScript

js实现渐隐

2026-03-14 06:50:48JavaScript

使用 CSS 过渡实现渐隐

通过 CSS 的 transitionopacity 属性实现渐隐效果,JavaScript 仅用于触发状态变化。

.fade-element {
  opacity: 1;
  transition: opacity 0.5s ease-in-out;
}
.fade-out {
  opacity: 0;
}
const element = document.querySelector('.fade-element');
element.classList.add('fade-out');

使用 requestAnimationFrame 手动控制渐隐

通过 JavaScript 逐帧修改透明度实现更精细的控制。

function fadeOut(element, duration) {
  let opacity = 1;
  const startTime = performance.now();

  function animate(currentTime) {
    const elapsed = currentTime - startTime;
    opacity = 1 - (elapsed / duration);
    opacity = Math.max(0, opacity);
    element.style.opacity = opacity;

    if (opacity > 0) {
      requestAnimationFrame(animate);
    }
  }

  requestAnimationFrame(animate);
}

fadeOut(document.getElementById('target'), 1000); // 1秒渐隐

使用 Web Animations API 实现渐隐

现代浏览器支持的动画 API,性能更好。

const element = document.getElementById('target');
element.animate(
  [
    { opacity: 1 },
    { opacity: 0 }
  ],
  {
    duration: 1000,
    easing: 'ease-in-out',
    fill: 'forwards'
  }
);

结合 Promise 的渐隐方法

返回 Promise 以便在动画完成后执行回调。

js实现渐隐

function fadeOut(element, duration) {
  return new Promise((resolve) => {
    element.style.transition = `opacity ${duration}ms`;
    element.style.opacity = 0;

    setTimeout(() => {
      resolve();
    }, duration);
  });
}

fadeOut(document.querySelector('.box'), 500)
  .then(() => console.log('渐隐完成'));

注意事项

  • 渐隐结束后如需隐藏元素,应添加 visibility: hiddendisplay: none
  • 考虑浏览器兼容性,Web Animations API 需要 polyfill 支持旧浏览器
  • 移动端设备上注意动画性能优化
  • 复杂场景建议使用 GSAP 等专业动画库

标签: 渐隐js
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…