我有一个函数foo,我想添加一个睡眠/等待函数来制作一种DOM元素动画.我已经做了一些研究,我知道暂停一个javascript函数是不可能的,因为它会冻结浏览器 - 如果我错了,请纠正我.我怎么能克服它?
function foo() {
while (someCondition) {
var $someDiv = $('.someDiv:nth-child(' + guess + ')');
$someDiv.css({'background-color': 'red'});
wait 1000ms
$someDiv.css({'background-color': 'blue'});
wait 1000ms
if (someCondition2) {
doSomething; }
else {
for loop }
}
}
Run Code Online (Sandbox Code Playgroud)
$someDiv每个while循环迭代引用不同的DOM元素,因为变量guess变化
我试过的
我使用下面的函数,它工作但问题是我无法for在我的异步函数foo中使用循环
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
Run Code Online (Sandbox Code Playgroud)我试过,setTimeout但我无法取得任何有效的结果.
如果我将setTimeout这段代码包装起来:
('$someDiv').css({'background-color': 'red'});那么在指定的时间之后,所有的$someDiv'scss样式都会一起改变(请记住,$someDiv每次while循环迭代都会引用不同的DOM元素).
如果我用setTimeout一个代码包装if,else …
我需要用class创建div pixel-1,pixel-2... pixel-n我的问题是如何实现它pug.我试过这个:
- for (var x = 1; x < 13; x++)
.pixel-x=x
Run Code Online (Sandbox Code Playgroud)
但它生成这样的css:
<div class="pixel-x">1</div>
<div class="pixel-x">2</div>
<div class="pixel-x">3</div>
...
Run Code Online (Sandbox Code Playgroud)