当前位置:首页 > JavaScript

js实现动画加载

2026-02-03 04:40:34JavaScript

使用 CSS 动画实现基础加载效果

通过 CSS @keyframes 定义动画,结合 animation 属性实现平滑的加载动画。以下是一个旋转加载动画的示例:

.loader {
  width: 40px;
  height: 40px;
  border: 4px solid #f3f3f3;
  border-top: 4px solid #3498db;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

在 HTML 中插入一个 div 元素并应用此样式:

<div class="loader"></div>

使用 JavaScript 控制动画启停

通过 classList 动态添加或移除动画类,实现动画的手动控制。例如:

const loader = document.querySelector('.loader');
// 启动动画
loader.classList.add('spin-animation');
// 停止动画
loader.classList.remove('spin-animation');

使用 requestAnimationFrame 实现高性能动画

适用于需要复杂计算的动画场景。以下示例实现一个平滑移动的方块:

const box = document.getElementById('box');
let position = 0;
function animate() {
  position += 1;
  box.style.transform = `translateX(${position}px)`;
  if (position < 200) {
    requestAnimationFrame(animate);
  }
}
animate();

结合 SVG 和 JavaScript 实现高级加载动画

通过动态修改 SVG 属性实现更灵活的动画效果。例如:

const svgPath = document.querySelector('.svg-loader path');
let offset = 0;
function updatePath() {
  offset += 0.05;
  svgPath.style.strokeDashoffset = offset;
  requestAnimationFrame(updatePath);
}
updatePath();

使用第三方库(如 GSAP)简化复杂动画

GSAP 提供更强大的动画控制能力。示例代码:

js实现动画加载

gsap.to(".loader", {
  rotation: 360,
  duration: 2,
  repeat: -1,
  ease: "linear"
});

注意事项

  • 性能优化:避免频繁操作 DOM,优先使用 CSS 硬件加速属性(如 transformopacity)。
  • 兼容性:使用 window.requestAnimationFrame 的 polyfill 确保旧浏览器支持。
  • 可访问性:为加载动画添加 aria-busy="true" 属性,辅助设备可识别加载状态。

标签: 加载动画
分享给朋友:

相关文章

vue实现滑动加载

vue实现滑动加载

滑动加载的实现思路 滑动加载通常通过监听滚动事件,判断是否滚动到页面底部来触发数据加载。Vue中可以通过结合v-for、@scroll事件和计算属性实现。 基础实现方法 监听滚动事件 在包含滚动区域…

vue实现流加载

vue实现流加载

Vue 实现流加载(无限滚动)的方法 流加载(无限滚动)是一种常见的网页优化技术,通过动态加载数据提升用户体验。以下是几种 Vue 实现流加载的方式: 使用 v-infinite-scroll 指令…

vue动画怎么实现

vue动画怎么实现

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

vue实现异步加载

vue实现异步加载

Vue 异步加载的实现方法 在 Vue 中实现异步加载可以通过多种方式完成,包括动态导入、路由懒加载和异步组件等。以下是几种常见的实现方法: 动态导入与异步组件 使用 Vue 的 defineAsy…

vue实现ppt动画

vue实现ppt动画

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

vue如何实现异步加载

vue如何实现异步加载

Vue异步加载的实现方式 动态导入组件 使用import()语法动态导入组件,Vue会将其识别为异步组件。这种方式适用于路由懒加载或按需加载组件。 const AsyncComponent = ()…