我有一个折叠的侧边栏(使用引导程序),我正在尝试确保折叠 只要元素可见,它就会滚动到该元素。
为了做到这一点,我正在使用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)
}
})
})
答案 0 :(得分:11)
设置为display: none
的项目位于页面流之外,这意味着它们不会在页面中占用任何空间。这意味着虽然它们设置为display: none
,但它们没有偏移值。
在第一次单击时,浏览器尝试查找偏移量,该值为0,然后显示该元素。一旦显示元素,就会给出偏移左/上值。