当前位置:首页 > JavaScript

js实现开屏动画

2026-04-07 12:36:33JavaScript

实现开屏动画的方法

使用JavaScript实现开屏动画可以通过多种方式完成,以下是几种常见的方法:

使用CSS动画结合JavaScript控制

通过CSS定义动画效果,JavaScript控制动画的播放和结束时机。

js实现开屏动画

<style>
  .splash-screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    animation: fadeOut 1s ease-in-out 2s forwards;
  }

  @keyframes fadeOut {
    from { opacity: 1; }
    to { opacity: 0; visibility: hidden; }
  }
</style>

<div class="splash-screen">
  <h1>欢迎来到我的网站</h1>
</div>

<script>
  document.addEventListener('DOMContentLoaded', () => {
    setTimeout(() => {
      const splash = document.querySelector('.splash-screen');
      splash.style.animation = 'fadeOut 1s ease-in-out forwards';
    }, 2000);
  });
</script>

纯JavaScript动画实现

使用requestAnimationFrame实现更复杂的动画效果。

js实现开屏动画

<div id="splash" style="position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #000; color: white; display: flex; justify-content: center; align-items: center;">
  <h1>加载中...</h1>
</div>

<script>
  let opacity = 1;
  const splash = document.getElementById('splash');

  function animate() {
    opacity -= 0.01;
    splash.style.opacity = opacity;

    if (opacity > 0) {
      requestAnimationFrame(animate);
    } else {
      splash.style.display = 'none';
    }
  }

  setTimeout(() => {
    requestAnimationFrame(animate);
  }, 2000);
</script>

使用GSAP动画库

GSAP提供了强大的动画控制能力,适合复杂的开屏动画需求。

<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/gsap.min.js"></script>

<div id="splash" style="position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(45deg, #ff00cc, #3333ff); color: white; display: flex; justify-content: center; align-items: center; z-index: 9999;">
  <h1>欢迎光临</h1>
</div>

<script>
  document.addEventListener('DOMContentLoaded', () => {
    gsap.to("#splash", {
      opacity: 0,
      duration: 1,
      delay: 2,
      onComplete: () => {
        document.getElementById("splash").style.display = "none";
      }
    });
  });
</script>

关键注意事项

  • 确保开屏动画在所有资源加载完成后才开始播放,可以使用DOMContentLoaded事件
  • 考虑移动设备和桌面设备的不同表现,可能需要添加响应式设计
  • 动画结束后应移除或隐藏开屏元素,避免影响页面交互
  • 对于复杂动画,考虑使用专门的动画库如GSAP、Anime.js等
  • 测试动画在不同浏览器中的表现,确保兼容性

进阶技巧

对于更专业的开屏动画,可以结合以下技术:

  • 使用Canvas或WebGL实现高性能粒子动画
  • 添加进度条显示实际加载进度
  • 实现品牌logo的特殊动画效果
  • 考虑添加跳过按钮,让用户可以提前结束动画
  • 使用localStorage记录用户是否已经看过开屏动画,避免重复显示

标签: 开屏动画
分享给朋友:

相关文章

vue的动画实现

vue的动画实现

Vue 动画实现方式 Vue 提供了多种方式实现动画效果,主要包括内置组件和第三方库。 使用 <transition> 和 <transition-group> Vue 内置…

vue动画实现折叠

vue动画实现折叠

使用 Vue Transition 实现折叠动画 在 Vue 中可以通过 <transition> 组件和 CSS 过渡实现折叠效果。核心原理是动态切换元素的 height 属性,配合 o…

vue实现开屏广告

vue实现开屏广告

实现开屏广告的基本思路 在Vue中实现开屏广告通常需要结合路由守卫、定时器和本地存储技术。核心逻辑包括广告显示、倒计时控制以及跳过功能。 广告页面组件设计 创建一个独立的广告组件,通常命名为Spla…

vue 实现文字动画

vue 实现文字动画

Vue 实现文字动画的方法 使用 CSS 动画结合 Vue 过渡 Vue 的 <transition> 组件可以与 CSS 动画结合,实现文字的动态效果。例如淡入淡出: <tran…

vue负责动画实现

vue负责动画实现

Vue 动画实现方法 Vue 提供了多种方式来实现动画效果,主要通过内置组件和第三方库支持。 使用 Vue 内置过渡组件 Vue 的 transition 和 transition-group 组件…

vue动画怎么实现

vue动画怎么实现

Vue动画的实现方式 Vue提供了多种方式来实现动画效果,包括内置的过渡和动画系统,以及第三方动画库的集成。以下是几种常见的实现方法: 使用Vue的过渡系统 Vue的<transition&…