在下面的代码中使用`setTimeout`?

来宾

我注意到当我setTimeout从下面的代码中删除时,动画停止工作。有人可以向我解释引擎盖下发生了什么吗?

为什么有必要在setTimeout这里插入这个,即使时间值是0在我看来,它应该立即执行,那为什么要插入setTimeout(cb,0)呢?

setTimeout(() => {
... //see below for code
}, 0);


<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <style>
    .message-ball {
      font-size: 20px;
      line-height: 200px;
      text-align: center;
    }
    .circle {
      transition-property: width, height, margin-left, margin-top;
      transition-duration: 2s;
      position: fixed;
      transform: translateX(-50%) translateY(-50%);
      background-color: red;
      border-radius: 50%;
    }
  </style>
</head>

<body>

  <button onclick="go()">Click me</button>

  <script>

  function go() {
    showCircle(150, 150, 100, div => {
      div.classList.add('message-ball');
      div.append("Hello, world!");
    });
  }

  function showCircle(cx, cy, radius, callback) {
    let div = document.createElement('div');
    div.style.width = 0;
    div.style.height = 0;
    div.style.left = cx + 'px';
    div.style.top = cy + 'px';
    div.className = 'circle';
    document.body.append(div);

    setTimeout(() => {
      div.style.width = radius * 2 + 'px';
      div.style.height = radius * 2 + 'px';

      div.addEventListener('transitionend', function handler() {
        div.removeEventListener('transitionend', handler);
        callback(div);
      });
    }, 0);
  }
  </script>


</body>
</html>
乔纳斯·威尔姆斯

因为只有在更改属性时才会发生转换如果你这样做

 div.style.width = 0;
 div style.width = "1000px";

这不会动画任何东西,因为属性被直接改变了。如果您推迟第二次更新,它将检测到更改并导致发生转换。,

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在下面的代码中使用toString()方法的目的是什么?

来自分类Dev

如何在下面的代码中使用systemNavigator.pop在Flutter中退出应用

来自分类Dev

我如何在下面的代码中使用for循环和.format来遍历不同的函数?

来自分类Dev

在下面的代码中使用template.library()和@ register.filter()的目的是什么

来自分类Dev

在下面的代码中需要如何使用applyMap的帮助

来自分类Dev

如何在下面的查询中使用“喜欢”命令

来自分类Dev

为什么在下面的代码中使用$ this&如果我不使用则发生什么,并使用$ this我有什么好处?

来自分类Dev

为什么我们应该在下面的代码中使用模板包装器?

来自分类Dev

为什么我需要在下面的代码中使用 [6] 来切出时间?

来自分类Dev

在下面的代码中出现错误

来自分类Dev

我在下面的程序中使用angularjs在php上工作,我没有从ajax call获得任何响应。我没有在下面的代码中得到什么错了

来自分类Dev

当我在下面的python代码中使用时,我得到了两种不同的机器epsilon数量,这是什么原因?

来自分类Dev

为什么在下面的scala代码中使用了内部函数,没有内部函数我们不能编写它

来自分类Dev

如何在下面的代码中添加滚动条?(使用Tkinter for 2.7.5)

来自分类Dev

在下面的代码中,哪种使用Application.Run()的方法是更好的做法?

来自分类Dev

如何使用pyspark在下面的代码中传递数组(多列)

来自分类Dev

在下面的代码中,*ptr 如何与 (.) 和 (&test) 与 -> 一起使用?

来自分类Dev

如何在下面的shell脚本中使用rsync而不是scp复制文件?

来自分类Dev

什么是嵌套循环以及如何在下面的示例中使用它?

来自分类Dev

如何在下面的示例中使用 Javascript 添加光标闪烁效果

来自分类Dev

在下面的代码中何时调用super()

来自分类Dev

在下面的代码中无法发现内存泄漏问题

来自分类Dev

为什么输出是这在下面的Java代码?

来自分类Dev

如何在下面的代码中实现改组函数?

来自分类Dev

在下面的代码中获取NullReference异常

来自分类Dev

在下面的代码中动态添加项目

来自分类Dev

我在下面的代码中被中止(核心已转储)

来自分类Dev

在下面的代码行中创建其实例

来自分类Dev

如何在下面的代码中更改文本的颜色?

Related 相关文章

  1. 1

    在下面的代码中使用toString()方法的目的是什么?

  2. 2

    如何在下面的代码中使用systemNavigator.pop在Flutter中退出应用

  3. 3

    我如何在下面的代码中使用for循环和.format来遍历不同的函数?

  4. 4

    在下面的代码中使用template.library()和@ register.filter()的目的是什么

  5. 5

    在下面的代码中需要如何使用applyMap的帮助

  6. 6

    如何在下面的查询中使用“喜欢”命令

  7. 7

    为什么在下面的代码中使用$ this&如果我不使用则发生什么,并使用$ this我有什么好处?

  8. 8

    为什么我们应该在下面的代码中使用模板包装器?

  9. 9

    为什么我需要在下面的代码中使用 [6] 来切出时间?

  10. 10

    在下面的代码中出现错误

  11. 11

    我在下面的程序中使用angularjs在php上工作,我没有从ajax call获得任何响应。我没有在下面的代码中得到什么错了

  12. 12

    当我在下面的python代码中使用时,我得到了两种不同的机器epsilon数量,这是什么原因?

  13. 13

    为什么在下面的scala代码中使用了内部函数,没有内部函数我们不能编写它

  14. 14

    如何在下面的代码中添加滚动条?(使用Tkinter for 2.7.5)

  15. 15

    在下面的代码中,哪种使用Application.Run()的方法是更好的做法?

  16. 16

    如何使用pyspark在下面的代码中传递数组(多列)

  17. 17

    在下面的代码中,*ptr 如何与 (.) 和 (&test) 与 -> 一起使用?

  18. 18

    如何在下面的shell脚本中使用rsync而不是scp复制文件?

  19. 19

    什么是嵌套循环以及如何在下面的示例中使用它?

  20. 20

    如何在下面的示例中使用 Javascript 添加光标闪烁效果

  21. 21

    在下面的代码中何时调用super()

  22. 22

    在下面的代码中无法发现内存泄漏问题

  23. 23

    为什么输出是这在下面的Java代码?

  24. 24

    如何在下面的代码中实现改组函数?

  25. 25

    在下面的代码中获取NullReference异常

  26. 26

    在下面的代码中动态添加项目

  27. 27

    我在下面的代码中被中止(核心已转储)

  28. 28

    在下面的代码行中创建其实例

  29. 29

    如何在下面的代码中更改文本的颜色?

热门标签

归档