Javascript Jquery在通过while循环递增时扩展点的宽度

Javascript Jquery在通过while循环递增时扩展点的宽度,javascript,jquery,css,Javascript,Jquery,Css,和 setTimeout(function() { /*action*/ }, i * 100); 但是这些似乎都没有取得任何效果,页面只是坐在那里试图处理上面的setTimeout函数,直到它超时。如果我使用delay,则增量之间没有延迟,这意味着该点立即延伸到窗口的宽度 有什么想法吗,伙计们?谢谢 你不能像那样在一个循环中堆积一堆CSS更改。在代码完成之前,浏览器不会执行任何实际布局更新。您可以将更改放在超时处理程序中,该处理程序会重置自身,直到满足终止条件,如 delay(i * 100

setTimeout(function() { /*action*/ }, i * 100);
但是这些似乎都没有取得任何效果,页面只是坐在那里试图处理上面的setTimeout函数,直到它超时。如果我使用delay,则增量之间没有延迟,这意味着该点立即延伸到窗口的宽度


有什么想法吗,伙计们?谢谢

你不能像那样在一个循环中堆积一堆CSS更改。在代码完成之前,浏览器不会执行任何实际布局更新。您可以将更改放在超时处理程序中,该处理程序会重置自身,直到满足终止条件,如

delay(i * 100);
请注意,代码只查找一次point元素,即 一般来说,养成一个好习惯


你知道jQuery有一个动画方法吗?为了进一步澄清我不想使用jQuery的动画的原因,是因为我想在5px的阶段中增加,而不是流体动画。你是否尝试过在jQuery.animate步骤选项中更新你的增量?
delay(i * 100);
$(function() {
  var $point = $(".loader .point"),
      windowWidth = $(window).width();

  function expand() {
    var pw = $point.width();
    console.log("pw " + pw);
    if (pw >= windowWidth)
      return;
    $point.width((pw + 5) + "px");
    setTimeout(expand, 500);
  }

  expand();
});