3

我有一个折叠的侧边栏(使用引导程序),我试图确保折叠的元素在可见时滚动到它。

为了做到这一点,我使用 jQuery 的 offset(),它在第一次点击时返回 0,在第二次点击时返回正确的偏移量。

这是我的代码:

    $.each($('[data-toggle="collapse"]'), function() {
        $(this).on("click", function() { 
            if ($(this).is('A')) { 
                event.preventDefault(); $(this).toggleClass("active");
                var x = $(this).attr("href");
                console.log($(x).offset().top)

            }
        })
    })
4

1 回答 1

11

设置为display: none的项目在页面流之外,这意味着它们不占用页面内的空间。这意味着虽然它们设置为display: none,但它们没有偏移值。

在第一次单击时,浏览器会尝试查找偏移量,即 0,然后显示元素。元素一显示,就会给出一个左/上偏移值。

示例小提琴

于 2013-11-11T10:24:16.223 回答