当前位置:首页 > JavaScript

js实现开屏动画

2026-03-15 19:12:05JavaScript

使用CSS动画实现开屏动画

通过CSS的@keyframesanimation属性可以轻松实现开屏动画效果。定义一个全屏遮罩层,应用动画效果后自动隐藏。

<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 1.5s ease-in-out forwards;
  }

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

<div class="splash-screen">
  <img src="logo.png" alt="App Logo">
</div>

使用JavaScript控制动画

通过JavaScript可以更精确地控制动画时间和行为,添加事件监听确保资源加载完成后再执行动画。

window.addEventListener('load', function() {
  const splash = document.querySelector('.splash-screen');
  setTimeout(() => {
    splash.style.opacity = '0';
    setTimeout(() => {
      splash.style.display = 'none';
    }, 1000);
  }, 2000);
});

结合Canvas实现复杂动画

对于更复杂的开屏动画效果,可以使用Canvas绘制。这种方法适合需要自定义图形动画的场景。

<canvas id="splashCanvas"></canvas>

<script>
  const canvas = document.getElementById('splashCanvas');
  const ctx = canvas.getContext('2d');

  function resizeCanvas() {
    canvas.width = window.innerWidth;
    canvas.height = window.innerHeight;
  }

  window.addEventListener('resize', resizeCanvas);
  resizeCanvas();

  function animate() {
    // 绘制动画逻辑
    requestAnimationFrame(animate);
  }

  animate();
</script>

使用GSAP库实现高级动画

GSAP是一个强大的动画库,可以创建更流畅和复杂的开屏动画效果。

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

<script>
  gsap.to(".splash-screen", {
    opacity: 0,
    duration: 1.5,
    ease: "power2.inOut",
    onComplete: function() {
      document.querySelector(".splash-screen").style.display = "none";
    }
  });
</script>

响应式设计考虑

确保开屏动画在不同设备上都能正常显示,需要添加响应式设计。

.splash-screen img {
  max-width: 80%;
  height: auto;
}

@media (max-width: 768px) {
  .splash-screen {
    animation-duration: 1s;
  }
}

性能优化建议

避免开屏动画影响页面加载性能,可以考虑以下优化措施:

js实现开屏动画

  • 压缩动画使用的图片资源
  • 使用CSS硬件加速(transform/opacity)
  • 减少复杂的JavaScript计算
  • 设置合适的动画持续时间(通常2-3秒为宜)

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

相关文章

vue实现路由动画

vue实现路由动画

路由动画的实现方法 在Vue中实现路由动画通常结合<transition>组件和Vue Router的导航守卫。以下是几种常见实现方式: 基础过渡动画 <template>…

vue实现停止动画

vue实现停止动画

停止动画的方法 在Vue中停止动画可以通过多种方式实现,具体取决于动画的实现方式(CSS动画、JavaScript动画或第三方库如GSAP)。 使用CSS动画 通过动态绑定类名或样式来控制动画的播放…

vue怎么实现动画功能

vue怎么实现动画功能

Vue 动画实现方法 Vue 提供了多种方式实现动画效果,主要通过内置组件和第三方库支持。以下是常见实现方法: 使用 <transition> 组件 Vue 内置的 <transi…

冒泡排序动画vue实现

冒泡排序动画vue实现

冒泡排序动画的 Vue 实现 冒泡排序是一种简单的排序算法,通过重复遍历列表,比较相邻元素并交换顺序错误的元素。在 Vue 中实现冒泡排序动画可以通过数据绑定和过渡效果直观展示排序过程。 核心实现步…

vue实现资源加载动画

vue实现资源加载动画

实现资源加载动画的方法 在Vue中实现资源加载动画可以通过多种方式完成,以下是几种常见的方法: 使用CSS动画和Vue条件渲染 通过Vue的v-if或v-show指令控制加载动画的显示与隐藏。结合…

vue中怎么实现动画

vue中怎么实现动画

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