相关疑难解决方法(0)

Bootstrap手风琴滚动到活动面板标题的顶部

我正在寻找一个代码,该代码可以滚动到我的bootstrap 3 html/css手风琴的当前活动面板标题的顶部.我在stackoverflow上找到的最接近的解决方案是以下js的片段.

此代码段工作得相当好,但是当单击面板标题时,页面会滚动,使得面板内容的最顶部与屏幕顶部齐平.有没有办法修改它,以便滚动效果将导致面板"标题"(而不是面板内容区域的顶部)在屏幕顶部可见?

    $(function () {
    $('#accordion').on('shown.bs.collapse', function (e) {
    var offset = $('.panel.panel-default > .panel-collapse.in').offset();
    if(offset)$('html,body').scrollTop(offset.top); }); });
Run Code Online (Sandbox Code Playgroud)

如果我也应该分享bootstrap手风琴html,请告诉我.

javascript scroll accordion twitter-bootstrap

11
推荐指数
3
解决办法
2万
查看次数

Bootstrap 4 手风琴在单击时滚动到活动卡的顶部

看来我的问题已经在这里得到了回答——这正是我正在寻找的功能。但是随着 Bootstrap 4 的新版本,他们将手风琴改为使用卡片,而不是面板。我无法整理 js 以适应他们的新结构。

基于 BS3 的答案,我觉得它应该是这样的,但我无法让它工作:

$('.card-header').on('shown.bs.collapse', function(e) {
  var $card = $(this).closest('.card');
  $('html,body').animate({
    scrollTop: $card.offset().top
  }, 500);
});
Run Code Online (Sandbox Code Playgroud)

BS4 手风琴的 HTML 如下:

<div id="accordion" role="tablist" aria-multiselectable="true">
  <div class="card">
    <div class="card-header" role="tab" id="headingOne">
      <h5 class="mb-0">
        <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
          Collapsible Group Item #1
        </a>
      </h5>
    </div>

    <div id="collapseOne" class="collapse show" role="tabpanel" aria-labelledby="headingOne">
      <div class="card-block">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non …
Run Code Online (Sandbox Code Playgroud)

javascript jquery accordion twitter-bootstrap

6
推荐指数
1
解决办法
3388
查看次数

打开时滚动到引导手风琴的顶部

我最近一直在写一个小博客,并希望可以从手风琴中访问连续的博客文章(下面的示例)。这样,您可以快速浏览帖子标题,选择一个有趣的并阅读。完成后,您可以无缝返回浏览,而无需进行不必要的菜单导航。

我的问题是,一旦你读完一篇文章并点击第二篇文章,我就无法让第二篇文章在顶部打开,标题可见。由于您已经向下滚动阅读了第一篇文章,因此您打开了第二篇文章的 2/3。这迫使用户一直滚动回到他尚未阅读的帖子的顶部。出于某种原因,我似乎什么都做不了;任何指导将不胜感激!

更新: 事实证明,由于我使用的是 jQuery 的精简版,因此我尝试使用的功能不可用。现在我已经克服了这个障碍,一切都可以编译,但我无法强制页面滚动到正确的位置。

我最接近的解决方案是这样,它会card-header在打开新部分时向上滚动到第一个(而我想要card-header点击的部分)。

$(".card-header").click(function (event) {                                      
    $('html, body').animate({                                                   
        scrollTop: $(".card-header").offset().top                               
    }, 300);                                                                    
}); 
Run Code Online (Sandbox Code Playgroud)

我正在尝试做的在逻辑上与此等效,但是这个确切的代码根本不滚动(它可以正确编译,并且替换$(this)$(event.target)$(event.target).parent()也不起作用)。

$(".card-header").click(function(event) {                                                                           
    $('html, body').animate({                                                   
        scrollTop: $(this).offset().top-60                     
    }, 300);  
Run Code Online (Sandbox Code Playgroud)

这是重现我的挣扎的最小工作示例:

$(".card-header").click(function (event) {                                      
    $('html, body').animate({                                                   
        scrollTop: $(".card-header").offset().top                               
    }, 300);                                                                    
}); 
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery bootstrap-4

1
推荐指数
1
解决办法
1653
查看次数