当前位置:首页 > JavaScript

js实现spinner

2026-03-14 08:47:28JavaScript

使用纯CSS实现Spinner

通过CSS的@keyframesanimation属性可以轻松创建一个旋转的spinner效果。以下是一个简单的实现示例:

<style>
  .spinner {
    width: 40px;
    height: 40px;
    border: 4px solid rgba(0, 0, 0, 0.1);
    border-radius: 50%;
    border-top-color: #09f;
    animation: spin 1s linear infinite;
  }

  @keyframes spin {
    to {
      transform: rotate(360deg);
    }
  }
</style>

<div class="spinner"></div>

使用SVG实现Spinner

SVG提供了更精细的控制,适合需要复杂动画的场景:

js实现spinner

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

<style>
  .spinner {
    animation: rotate 2s linear infinite;
    width: 40px;
    height: 40px;
  }

  @keyframes rotate {
    100% {
      transform: rotate(360deg);
    }
  }
</style>

使用JavaScript控制Spinner

如果需要动态控制spinner的显示/隐藏,可以结合JavaScript:

function showSpinner() {
  document.getElementById('spinner').style.display = 'block';
}

function hideSpinner() {
  document.getElementById('spinner').style.display = 'none';
}

使用第三方库

对于更复杂的需求,可以考虑使用第三方库如Spin.js:

js实现spinner

var opts = {
  lines: 12, // 线条数量
  length: 7, // 每条线长度
  width: 5, // 线宽
  radius: 10, // 内圆半径
  color: '#000', // 颜色
  speed: 1, // 旋转速度
  trail: 60, // 拖尾百分比
  shadow: false // 是否显示阴影
};

var target = document.getElementById('spinner-container');
var spinner = new Spinner(opts).spin(target);

响应式Spinner实现

确保spinner在不同设备上都能正常显示:

.spinner {
  width: 5vw;
  height: 5vw;
  min-width: 40px;
  min-height: 40px;
  /* 其余样式保持不变 */
}

可访问性考虑

为spinner添加ARIA属性,提升无障碍体验:

<div class="spinner" role="status" aria-label="Loading..."></div>

标签: jsspinner
分享给朋友:

相关文章

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 const…

js实现下拉刷新

js实现下拉刷新

监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let currentY…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…

js 实现截图

js 实现截图

使用html2canvas库实现截图 html2canvas是一个流行的JavaScript库,可将HTML元素转换为Canvas,进而导出为图片。 安装库: npm instal…

js尚未实现

js尚未实现

JavaScript 尚未实现的功能 JavaScript 作为一门不断发展的语言,仍有一些功能尚未被原生支持或标准化。以下是一些常见的尚未实现的功能或特性: Promise.any() 的替代方案…