我曾是最年轻的男孩 2020-05-11 10:25 采纳率: 0%
浏览 123

js重排问题(附一个小代码片段)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
         .box {
            position: absolute;
            left: 0;
            width: 50px;
            height: 50px;
            border: 10px solid red;
            transition: all 2s;
        }
    </style>
</head>
<button id="demo2">点击插入box</button>
<body>
    <script>
        demo2.onclick = function(){
            let div = document.createElement('div')
            div.classList.add('box')
            document.body.appendChild(div)
            //getComputedStyle(div,null).left
            div.style.left = '500px'
        }
    </script>
</body>
</html>

注释解开才会有过渡效果,因为触发了重排,这我能理解。
但是document.body.appendChild(div)这个不是也触发了重排,为什么还得再重排一下,也就是说为什么注释不解开不会有过渡效果。

  • 写回答

1条回答 默认 最新

  • ZS12345678ZS 2020-05-11 11:23
    关注

    我觉得document.body.appendChild(div)只是第一次渲染,就是把div带着样式放在那里了

    而transition需要他自己的触发时机,比如一个div你想要他transition,可以通过点击这个div

    评论

报告相同问题?

悬赏问题

  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22
  • ¥15 R语言中lasso回归报错