Javascript 折叠后手风琴得到偏移

Javascript 折叠后手风琴得到偏移,javascript,jquery,html,Javascript,Jquery,Html,我试图得到一个手风琴标题点击后的绝对位置 问题是,Bootstrap和我的jquery的手风琴折叠运动几乎是以相同的速度启动的。发生的情况是,我的jquery在折叠手风琴之前获得偏移量 折叠后,单击后标题可以有另一个offsetTop 有没有办法在折叠后启动我的jquery,或者稍等一下让手风琴折叠,然后请求offsetTop const handle = document.querySelector('#handle'); const headers = document.querySe

我试图得到一个手风琴标题点击后的绝对位置

问题是,Bootstrap和我的jquery的手风琴折叠运动几乎是以相同的速度启动的。发生的情况是,我的jquery在折叠手风琴之前获得偏移量

折叠后,单击后标题可以有另一个
offsetTop

有没有办法在折叠后启动我的jquery,或者稍等一下让手风琴折叠,然后请求
offsetTop

const handle = document.querySelector('#handle');



const headers = document.querySelectorAll('.accordion')

   .forEach(el => {

       el.addEventListener('mouseover', e => {

           handle.style.top = `${e.currentTarget.offsetTop}px`;



   });

});

正如您在示例中看到的,如果您首先打开第一个部分,然后打开第二个部分,则点会向下移动很远


如果您再次单击第二节,它将移动到正确的位置

如果我理解您的问题,您可以使用setTimeout()等待动画完成

注意,一个问题是我们没有动态设置等待时间,因此它可能感觉不到响应

    setTimeout(()=>{
        handle.style.top = `${e.target.offsetTop}px`;
    }, 200)

如果我理解您的问题,您可以使用setTimeout()等待动画完成

注意,一个问题是我们没有动态设置等待时间,因此它可能感觉不到响应

    setTimeout(()=>{
        handle.style.top = `${e.target.offsetTop}px`;
    }, 200)

可能重复?可能重复?现在我得到了以下错误UncaughtTypeError:无法读取Null的属性'offsetTop',请尝试将e作为参数传递给anonymousfunction@ThinkCode试试我更新的例子。我注意到你应该使用e.target而不是e.currentTarget,我刚刚发现了相同的答案。它对我的exampe页面有效,但不知怎么的,现在在我的live页面上。如果我猜出来的话,我会试着写完整的答案。非常感谢!现在我得到了以下错误UncaughtTypeError:无法读取Null的属性'offsetTop',请尝试将e作为参数传递给anonymousfunction@ThinkCode试试我更新的例子。我注意到你应该使用e.target而不是e.currentTarget,我刚刚发现了相同的答案。它对我的exampe页面有效,但不知怎么的,现在在我的live页面上。如果我猜出来的话,我会试着写完整的答案。非常感谢!