Jquery 引导折叠滚动顶部滚动到错误的元素
我使用此脚本滚动到显示的折叠元素:Jquery 引导折叠滚动顶部滚动到错误的元素,jquery,twitter-bootstrap,twitter-bootstrap-3,Jquery,Twitter Bootstrap,Twitter Bootstrap 3,我使用此脚本滚动到显示的折叠元素: $('.collapse').on('shown.bs.collapse', function () { $('html, body').stop().animate({ scrollTop: $(this).offset().top }, 500, 'swing'); }); 除了在非常小的屏幕上导航之外,它对任何东西都非常有效。打开菜单时,我希望它滚动到导航的顶部。这对我的顶级导航很好,但对于我的第二级导航,它会滚动到部分的顶部,而不是导
$('.collapse').on('shown.bs.collapse', function () {
$('html, body').stop().animate({
scrollTop: $(this).offset().top
}, 500, 'swing');
});
除了在非常小的屏幕上导航之外,它对任何东西都非常有效。打开菜单时,我希望它滚动到导航的顶部。这对我的顶级导航很好,但对于我的第二级导航,它会滚动到部分的顶部,而不是导航
(使用移动预览->单击按钮打开可折叠导航->单击“链接1”->滚动到底部,然后单击按钮打开第二个折叠导航)
正如您将看到的,它会滚动到“链接1”标题,而不是刚刚打开的导航。这个未回答的问题让我有点担心,所以我在近3年后再次查看了它。我发现,在第二个“显示”事件中,主导航和第二导航都在开火 然后我找到了这个,他拿着钥匙 这与使用
event
对象的方法一样简单,以防止父collapse元素也收到事件通知
$('.collapse').on('shown.bs.collapse', function (event) {
event.stopPropagation();
$('html, body').stop().animate({
'scrollTop': $(this).offset().top
}, 500, 'swing');
});
更新