当前位置:首页 > 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可以更精确地控制动画时间和行为,添加事件监听确保资源加载完成后再执行动画。

js实现开屏动画

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是一个强大的动画库,可以创建更流畅和复杂的开屏动画效果。

js实现开屏动画

<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;
  }
}

性能优化建议

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

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

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

相关文章

vue动画实现方式

vue动画实现方式

Vue 动画实现方式 Vue 提供了多种方式来实现动画效果,主要通过内置的 <transition> 和 <transition-group> 组件以及结合 CSS 或 Jav…

vue实现半场动画

vue实现半场动画

Vue 实现半场动画 在 Vue 中实现半场动画通常指的是动画执行到一半时停止或改变状态。可以通过 Vue 的过渡系统或第三方动画库(如 GSAP)实现。 使用 Vue 过渡 Vue 提供了…

vue实现列表动画

vue实现列表动画

Vue 列表动画的实现方法 Vue 提供了内置的过渡和动画系统,可以通过 <transition-group> 组件实现列表动画效果。以下是几种常见的实现方式: 使用 <trans…

vue实现ppt动画

vue实现ppt动画

Vue实现PPT动画的基本思路 使用Vue实现PPT动画效果,可以通过动态绑定CSS类、结合过渡动画和第三方库来实现。Vue的响应式特性非常适合处理动态内容切换和动画效果。 使用Vue过渡动画实现单…

vue2.0动画实现

vue2.0动画实现

Vue 2.0 动画实现方法 Vue 2.0 提供了多种方式实现动画效果,主要通过内置的 <transition> 和 <transition-group> 组件以及 CSS…

vue实现展开动画

vue实现展开动画

使用 Vue Transition 组件实现展开动画 Vue 内置的 Transition 组件可以方便地实现元素的展开/收起动画效果。通过添加 CSS 过渡类名,定义进入和离开的动画过程。…