首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >材料设计精巧导航标签自动滑轨

问材料设计精巧导航标签自动滑轨
EN

Stack Overflow用户
提问于 2018-08-03 15:52:32
回答 1查看 1.1K关注 0票数 0

我使用这个库https://getmdl.io/components/index.html#layout-section/tabs来显示"scrollables选项卡“。我的问题是,当我选择一个标签,它是在箭头下(右或左),标签是很好的选择,但我们不能阅读所有的单词。在本机应用程序上,我看到选项卡条自动滚动以显示完整选择的选项卡。你知道用那个图书馆怎么做吗?

您可以在这里看到一个示例:http://jsfiddle.net/fzngbjcw/2/

代码语言:javascript
复制
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">
    <script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>
</head>
<body>





    <div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">
        <header class="mdl-layout__header">
            <!-- Tabs -->
            <div class="mdl-layout__tab-bar mdl-js-ripple-effect">
                    <a href="#scroll-tab-1" class="mdl-layout__tab is-active">My tab label 1</a>
                    <a href="#scroll-tab-2" class="mdl-layout__tab">My tabulation label 2</a>
                    <a href="#scroll-tab-3" class="mdl-layout__tab">My tabulation label 3</a>
                    <a href="#scroll-tab-4" class="mdl-layout__tab">My tabulation label 4</a>
                    <a href="#scroll-tab-5" class="mdl-layout__tab">My tabulation label 5</a>
                    <a href="#scroll-tab-6" class="mdl-layout__tab">My tabulation label 6</a>

            </div>
        </header>
        <main class="mdl-layout__content">


        <section class="mdl-layout__tab-panel" id="scroll-tab-1">
            <div class="page-content">
            </div>
        </section>

        <section class="mdl-layout__tab-panel" id="scroll-tab-2">
            <div class="page-content">
            </div>
        </section>

        <section class="mdl-layout__tab-panel" id="scroll-tab-3">
            <div class="page-content">
            </div>
        </section>

        <section class="mdl-layout__tab-panel" id="scroll-tab-4">
            <div class="page-content">
            </div>
        </section>

        <section class="mdl-layout__tab-panel" id="scroll-tab-5">
            <div class="page-content">
            </div>
        </section>


        <section class="mdl-layout__tab-panel" id="scroll-tab-6">
            <div class="page-content">
            </div>
        </section>


    </main>
    </div>


</body>
</html>

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-04 01:04:45

我不认为材料设计有一个自动滚动选项卡的功能,这些选项卡位于视口之外(您可能已经在网络材料组件的选项卡演示中看到了该功能,这正是开发人员现在关注的地方,它将MDL置于“有限支持”中)。

也就是说,当使用js单击部分位于viewport之外的选项卡时,可以在MDL中实现一些简单的自动滚动,以检查单击的选项卡是否部分位于视图端口之外,然后触发对适当的MDL滚动按钮的单击(因此不必重新创建滚动行为)。请记住,MDL动态地创建了一些html元素,因此在选择这些元素之前,您必须侦听mdl-componentupgraded事件。以下是一个工作实例:

​

代码语言:javascript
复制
const tabs = document.querySelectorAll('.mdl-layout__tab')
let left, right;

document.addEventListener('mdl-componentupgraded', function(event) {
  left = document.querySelector('.mdl-layout__tab-bar-left-button');
  right = document.querySelector('.mdl-layout__tab-bar-right-button');
});

for (let tab of tabs) {
  tab.addEventListener('click', function(event) {
    let bounding = event.target.getBoundingClientRect();
    if (bounding.left < 0) {
      left.click();
    } else if (bounding.right > window.innerWidth) {
      right.click()
    }
  });
}
代码语言:javascript
复制
<!DOCTYPE html>
<html>

  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">
    <script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>
  </head>

  <body>

    <div class="mdl-layout mdl-js-layout mdl-layout--fixed-header">

      <header class="mdl-layout__header">
        <!-- Tabs -->
        <div class="mdl-layout__tab-bar mdl-js-ripple-effect">
          <a href="#scroll-tab-1" class="mdl-layout__tab is-active">My tab label 1</a>
          <a href="#scroll-tab-2" class="mdl-layout__tab">My tabulation label 2</a>
          <a href="#scroll-tab-3" class="mdl-layout__tab">My tabulation label 3</a>
          <a href="#scroll-tab-4" class="mdl-layout__tab">My tabulation label 4</a>
          <a href="#scroll-tab-5" class="mdl-layout__tab">My tabulation label 5</a>
          <a href="#scroll-tab-6" class="mdl-layout__tab">My tabulation label 6</a>

        </div>
      </header>

      <main class="mdl-layout__content">
        <section class="mdl-layout__tab-panel" id="scroll-tab-1">
          <div class="page-content">
          </div>
        </section>

        <section class="mdl-layout__tab-panel" id="scroll-tab-2">
          <div class="page-content">
          </div>
        </section>

        <section class="mdl-layout__tab-panel" id="scroll-tab-3">
          <div class="page-content">
          </div>
        </section>

        <section class="mdl-layout__tab-panel" id="scroll-tab-4">
          <div class="page-content">
          </div>
        </section>

        <section class="mdl-layout__tab-panel" id="scroll-tab-5">
          <div class="page-content">
          </div>
        </section>


        <section class="mdl-layout__tab-panel" id="scroll-tab-6">
          <div class="page-content">
          </div>
        </section>
      </main>

    </div>
    
  </body>

</html>

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51676250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档