【问题标题】:Bootstrap collapse scrollTop scrolls to wrong elementBootstrap 折叠 scrollTop 滚动到错误的元素
【发布时间】:2014-09-11 11:03:16
【问题描述】:

我正在使用此脚本滚动到显示的折叠元素:

$('.collapse').on('shown.bs.collapse', function () {
  $('html, body').stop().animate({
    scrollTop: $(this).offset().top
  }, 500, 'swing');
});

除了我在非常小的屏幕尺寸上的导航之外,它非常适用于所有内容。打开菜单时,我希望它滚动到导航的顶部。这适用于我的顶级导航,但对于我的二级导航,它会滚动到该部分的顶部而不是导航。

Bootply

(使用移动预览 -> 单击按钮打开可折叠导航 -> 单击“链接 1” -> 滚动到底部并单击按钮以打开第二个折叠导航)

如您所见,它会滚动到“链接 1”标题,而不是刚刚打开的导航。

【问题讨论】:

    标签: jquery twitter-bootstrap twitter-bootstrap-3


    【解决方案1】:

    这个没有答案的问题让我有点困扰,所以将近 3 年后我又看了一遍。我发现父母和第二个导航都在第二个“显示”事件上触发。

    然后我找到了这个similar question,而accepted answer 拿着钥匙。

    就像使用event 对象的stopPropagation 方法来防止父折叠元素也被通知事件一样简单。

    $('.collapse').on('shown.bs.collapse', function (event) {
        event.stopPropagation();
        $('html, body').stop().animate({
            'scrollTop': $(this).offset().top
        }, 500, 'swing');
    });
    

    更新bootply

    【讨论】:

      猜你喜欢
      • 2015-02-09
      • 2013-05-31
      • 2015-10-13
      • 2016-03-14
      • 2013-03-26
      • 1970-01-01
      • 2015-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多