当前位置:首页 > HTML

h5 loading 实现

2026-01-15 21:38:10HTML

实现H5页面加载动画的方法

使用CSS动画实现简单加载效果 通过CSS的@keyframesanimation属性可以创建平滑的加载动画。例如创建一个旋转的圆圈:

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

使用SVG实现复杂加载动画 SVG的路径动画和变形能力适合制作高级加载效果。示例代码:

<svg class="spinner" viewBox="0 0 50 50">
  <circle cx="25" cy="25" r="20" fill="none" stroke="#3498db" stroke-width="4"/>
</svg>

配合CSS动画:

.spinner circle {
  stroke-dasharray: 90, 150;
  stroke-dashoffset: 0;
  animation: dash 1.5s ease-in-out infinite;
}
@keyframes dash {
  0% { stroke-dashoffset: 0; }
  50% { stroke-dashoffset: -35; }
  100% { stroke-dashoffset: -124; }
}

使用JavaScript控制加载进度 动态加载进度条的实现:

h5 loading 实现

const progressBar = document.getElementById('progress-bar');
let progress = 0;
const interval = setInterval(() => {
  progress += 5;
  progressBar.style.width = `${progress}%`;
  if(progress >= 100) clearInterval(interval);
}, 300);

对应的HTML结构:

<div class="progress-container">
  <div id="progress-bar" class="progress-bar"></div>
</div>

骨架屏技术优化体验 在内容加载前显示页面结构轮廓:

h5 loading 实现

.skeleton {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}
@keyframes shimmer {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}

HTML示例:

<div class="skeleton" style="width:100%; height:100px;"></div>

使用第三方库快速实现 推荐使用Spin.js或Lottie等专业动画库:

// 使用Spin.js
const opts = {
  lines: 12,
  length: 30,
  width: 10,
  radius: 40,
  color: '#333'
};
const spinner = new Spinner(opts).spin(document.getElementById('loader'));

性能优化建议

  • 限制动画的复杂度,避免过多使用CSS阴影和渐变
  • 使用will-change属性提示浏览器优化动画性能
  • 考虑使用硬件加速的CSS属性如transformopacity
  • 对于移动端,适当降低动画帧数以节省电量

标签: loading
分享给朋友:

相关文章

vue 实现loading

vue 实现loading

实现全局Loading组件 在Vue中可以通过自定义组件结合状态管理实现全局Loading效果。以下是一种常见实现方式: 创建Loading组件 <template> &l…

elementui $loading

elementui $loading

ElementUI $loading 使用方法 ElementUI 的 $loading 方法用于在页面或组件中显示加载状态,通常用于异步操作(如网络请求)期间提供视觉反馈。以下是其核心用法和配置选项…