最近在做算法演示动画,但在js中遇到些许问题。
function playbubbleSort(arr) {
var len = arr.length;
for(var i = 0; i < len - 1; i++) {
for(var j = 0; j < len - 1 - i; j++) {
if(arr[j] > arr[j+1]) {
var temp_left = parseInt(window.getComputedStyle(div_child_obj[j+1],null).getPropertyValue("left"));
div_child_obj[j+1].style.left = window.getComputedStyle(div_child_obj[j],null).getPropertyValue("left");
div_child_obj[j].style.left = temp_left+"px";
var temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
let start = (new Date()).getTime();
while((new Date()).getTime() - start < 2000){
continue;
}
}
}
}
return arr;
}
我想在if句结尾处写一个延迟,从而实现动画不是一瞬间结束,而是慢慢一步步进行。然而我在结尾处添加的
let start = (new Date()).getTime();
while((new Date()).getTime() - start < 2000){
continue;
}
并不是我所预想的情况,实际运行过程中,是等待 (循环总次数x2) 秒,然后依旧是瞬间结束,请问有啥更好的解决方法吗