我使用的是bootstrap 4.当事件开始时,我可以使用以下命令让微调工具旋转:

<span class='spinner-border spinner-border-sm text-primary' role='status' aria-hidden='true' id='spinner' style='display: none'></span>
document.getElementById('spinner).style.display = 'inline-block';

但我怎么才能让它停止旋转呢?我不想隐藏微调控件,因为我想显示静态图像.有什么办法可以做到这一点吗?

推荐答案

解决办法很简单.您需要做的就是将animation设置为none:

document.getElementById('spinner').style.animation = 'none';

演示

下面是演示它的代码片段.旋转2s次后,旋转装置将停止.

// Get the spinner element
var spinner = document.getElementById('spinner');

// Show the spinner
spinner.style.display = 'inline-block';

// Set a timeout of 2 seconds
setTimeout(function() {
  // Stop the spinner animation
  spinner.style.animation = 'none';
}, 2000);
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">



<span class='spinner-border spinner-border-sm text-primary' role='status' aria-hidden='true' id='spinner' style='display: none'></span>





<!-- jQuery library -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.slim.min.js"></script>

<!-- Popper JS -->
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>

<!-- Latest compiled JavaScript -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>

Edits

编辑#1:显示整个圆圈

正如我在 comments 中所说,旋转器一开始就不是完整的圆圈.因此,一个迂回的方法是,当微调必须停止时,将分类更改为图标FontAwesome,以便显示所请求的图标.

要做到这一点,首先包括cdn:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css" integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA==" crossorigin="anonymous" referrerpolicy="no-referrer" />

在字体AWOW6中,圆形图标是<i class="fa-regular fa-circle"></i>,所以我们在JS中将微调按钮的className替换为'fa-regular fa-circle'.

document.getElementById('spinner').className = "fa-regular fa-circle";

演示

在演示中,微调将在运行2s次后停止并更改图标(我已将图标更改为check,并按text-success级更改为绿色-但您可以使用任何您想使用的 colored颜色 ,过程是相同的).

编辑#2:处理动画的更好方法

根据@Yogi的 comments ,是的,另一个解决方案更复杂,但我不认为@user1753640想要重新启动动画,因为他要求在旋转结束时将图标更改为完整的圆圈.不过,如果他们真的想这样做,那么我还建议使用spinner.style.animationIterationCount停止并重新启动微调器,其中值0停止,值Infinite开始动画.

Javascript相关问答推荐

为什么我达到了时间限制!?LeetCode链接列表循环(已解决,但需要解释!)

模块与独立组件

fs. writeFile()vs fs.writeFile()vs fs.appendFile()

Cookie中未保存会话数据

仅针对RTK查询中的未经授权的错误取消maxRetries

google docs boldText直到按行执行应用脚本错误

Promise Chain中的第二个useState不更新

无法访问Vue 3深度监视器中对象数组的特定对象值'

如何在文本字段中输入变量?

如何在ASP.NET项目中使用Google Chart API JavaScript将二次轴线值格式化为百分比

使用auth.js保护API路由的Next.JS,FETCH()不起作用

Reaction-SWR-无更新组件

处理TypeScrip Vue组件未初始化的react 对象

无法设置RazorPay订阅API项目价格

与在编剧中具有动态价值的定位器交互

如果对象中的字段等于某个值,则从数组列表中删除对象

MUI迷你图:如何将$符号添加到MUI迷你图中的工具提示数据

未捕获的不变违规:即使在使用DndProvider之后也应使用拖放上下文

无法使用Redux异步函数读取未定义的useEffect钩子的属性';map';

JavaScript structuredClone在Chrome/Edge中获得了非法调用,但在NodeJS中没有