javascript - 如何在 Javascript 中每隔几秒调用一个函数?

标签 javascript jquery css

不知道为什么这在 Javascript 中很难做到...有点令人沮丧 LOL

这是我尝试过的一种方法:

function rotateDavid() {
  $("#david").css({
    'transform' : 'rotate(90deg)'
  });
  setTimeout(rotateDavid, 10000);
};
rotateDavid();

它会执行一次但不会重复...我不知道...

最佳答案

这里的问题不是你如何调用函数。在某些情况下,这种方式实际上优于 setInterval。

您遇到的问题是将 Css 设置为 90 度并不会一遍又一遍地更改它。您每次都将其设置为相同的度数。

您需要在每次迭代时更新 Angular 。因此,在这种情况下,您要向其添加 90。

var rotation = 0;
function rotateDavid() {
  rotation += 1
  $("#david").css({
    'transform' : 'rotate(' + (90 * rotation) + 'deg)'
  });
  setTimeout(rotateDavid, 1000);
};
rotateDavid();
div{
  width:100px;
  height: 100px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="david">Hi</div>

您还可以使用模运算符来防止数字变得过大。

'transform' : 'rotate(' + (90 * (rotation%4)) + 'deg)'

关于javascript - 如何在 Javascript 中每隔几秒调用一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55056038/

相关文章:

javascript - 在 Angular 9 中创建具有动态 styleUrls 的组件

jquery - 有没有直接的方法来选择 jqGrid 中组内的行?

asp.net - 如何在asp.net treeview 控件中设置节点文本宽度

javascript - JavaScript 中使用逻辑 AND(&&) 进行 FOR 循环的几个条件

javascript - 分机JS : Add button to a column in a grid to show/hide other columns

jquery - 显示输入长度的限制计数器

javascript - JS检测div在屏幕下方的高度

html - 在我的 H1 文本旁边放一张图片,不管文本的宽度是多少

纯CSS的HTML5风格音频标签

javascript - 设置内部原型(prototype)