jquery - Materialise - 可折叠的大量内容不会滚动到选项卡顶部

标签 jquery materialize

我使用collapsible component provide by materialize framework 。我遇到一个错误,但不知道如何解决它或找到解决方法。如果一个选项卡的内容太大,当我打开该选项卡时,它不会滚动到选项卡本身的顶部(它会滚动到中间)。

您可以在这里尝试:https://jsfiddle.net/r8314ouq/ 。 打开第一个选项卡,然后打开第三个选项卡,您会发现它没有滚动到选项卡的开头。

我明白了 enter image description here 但我想看看 enter image description here 这非常烦人,因为用户必须滚动才能看到所有内容。

我按照文档创建了我的可折叠:

<ul class="collapsible" data-collapsible="accordion">
    <li>
      <div class="collapsible-header"><i class="material-icons">filter_drama</i>First</div>
      <div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
    </li>
    <li>
      <div class="collapsible-header"><i class="material-icons">place</i>Second</div>
      <div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
    </li>
    <li>
      <div class="collapsible-header"><i class="material-icons">whatshot</i>Third</div>
      <div class="collapsible-body"><p>Lorem ipsum dolor sit amet.</p></div>
    </li>
  </ul>

我 try catch 该事件并滚动,但没有成功。 有什么想法吗?

最佳答案

因此,就可用性而言,由于 Accordion 效果的工作方式,存在一些延迟,但这里有一种实现此功能的方法。

$('.collapsible').collapsible({
  accordion : false // A setting that changes the collapsible behavior to expandable instead of the default accordion style
});

$('.collapsible .collapsible-header').on('click', function(event) {
    var target = $(this);
    setTimeout(function() {
      if( target.length ) {
        event.preventDefault();
        $('html, body').animate({
            scrollTop: target.offset().top
        }, 500);
      }
    }, 300);
});

Here is your JSFiddle modified to work

500 是半秒的滚动效果动画,同时 300 是大约 0.3 秒的延迟,以允许 Accordion 折叠,否则它会滚动到事件触发点的标题位置(单击)大约是文本的一半(当在已打开的 Accordion 部分下方打开标题时)。

关于jquery - Materialise - 可折叠的大量内容不会滚动到选项卡顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37622986/

相关文章:

javascript - Materialize CSS 在表单字段上显示错误

css - 如何将 Materialise 中的工具提示放置在容器的中心?

javascript - MaterializeCSS 在 Google 脚本网络应用程序的第二条记录后添加 ","(逗号)

html - 如何使物化卡在 Django 中排列?

javascript - 提取给定 HTML block 中的所有 CSS 类和 ID

javascript - 如何使用 Flask 将数据从 JS 发送到 Python?

javascript - 如何从div中获取图像属性

html - 在没有网格的情况下使用 materialize css 会导致输入占位符未对齐

jquery .html() 函数问题

javascript - 如果 ajax 调用时间低于 1 秒则隐藏微调器