Javascript 在转换期间,如何获得其他元素的结果偏移?

Javascript 在转换期间,如何获得其他元素的结果偏移?,javascript,css,Javascript,Css,假设在同一个容器中有两个块级元素。我想增加第一个(靠近页面顶部)的高度,并在该高度上使用过渡。如何在转换结束之前获得第二个div的结果偏移量 对于这个例子,我不想知道怎么做。我想知道如何处理一般情况。许多其他元素可能同时经历转换,而不仅仅是我感兴趣的元素正上方的元素 我能想到的唯一方法是强制转换结束,检查位置,然后重新启动所有转换。。。但这意味着我必须在过渡开始的时候做。。。当使用临时完成的转换重新绘制页面时,它会导致闪烁 演示:一种方法是在添加触发CSS转换的类后克隆所有元素,然后可以从克隆的

假设在同一个容器中有两个块级元素。我想增加第一个(靠近页面顶部)的高度,并在该高度上使用过渡。如何在转换结束之前获得第二个div的结果偏移量

对于这个例子,我不想知道怎么做。我想知道如何处理一般情况。许多其他元素可能同时经历转换,而不仅仅是我感兴趣的元素正上方的元素

我能想到的唯一方法是强制转换结束,检查位置,然后重新启动所有转换。。。但这意味着我必须在过渡开始的时候做。。。当使用临时完成的转换重新绘制页面时,它会导致闪烁


演示:

一种方法是在添加触发CSS转换的类后克隆所有元素,然后可以从克隆的元素中获得结果属性,这些元素将立即保存新值

我建议使用容器元素:

<div id="container">
    <div id="one"></div>
    <div id="two">
        <div id="curr">current offsetTop of P:</div>
    </div>
</div>

这里是这种方法的一个

一种方法是在添加触发CSS转换的类后克隆所有元素,然后可以从克隆的元素中获得结果属性,这些元素将立即保存新值

我建议使用容器元素:

<div id="container">
    <div id="one"></div>
    <div id="two">
        <div id="curr">current offsetTop of P:</div>
    </div>
</div>

这里有一个的方法

…什么?把这些加在一起没有意义。如果你只使用当前的值,那我将得到什么样的值?哈哈哈,我知道发生了什么。这似乎只起作用,因为我们正在处理的数字。
q
的初始高度为150px。但是新的高度是300px,这就产生了150px的差异。示例中的q.offsetHeight恰好与(p的新offsetTop-p的旧offsetTop)的值相同
位置的任何原因:'绝对',左:'-9999px'
,而不是
可见性:隐藏
?看起来很完美。同样的效果,我想。@uber5001不可见元素仍然会占用页面空间,我们不能使用
display:none
,因为这样它们就不会报告任何高度/偏移。现在,由于克隆和删除克隆元素之间的关系不大,没有证据表明这些元素甚至被添加到DOM中,但是如果需要更多的计算
可见性:隐藏的
会导致不必要的行为,例如,请参见…什么?把这些加在一起没有意义。如果你只使用当前的值,那我将得到什么样的值?哈哈哈,我知道发生了什么。这似乎只起作用,因为我们正在处理的数字。
q
的初始高度为150px。但是新的高度是300px
,这就产生了150px的差异。示例中的q.offsetHeight恰好与(p的新offsetTop-p的旧offsetTop)的值相同
位置的任何原因:'绝对',左:'-9999px'
,而不是
可见性:隐藏
?看起来很完美。同样的效果,我想。@uber5001不可见元素仍然会占用页面空间,我们不能使用
display:none
,因为这样它们就不会报告任何高度/偏移。现在,由于克隆和删除克隆的元素之间没有太多的关系,没有证据表明这些元素甚至被添加到DOM中,但是如果需要更多的计算
可见性:隐藏的
会导致不必要的行为,请参见例如,您是否需要纯javascript解决方案,或者使用jQuery是一个选项?使用jQuery是一个选项,只要我还在使用Css转换。你需要纯javascript解决方案,还是使用jQuery是一个选项?使用jQuery是一个选项,只要我还在使用Css转换。