【问题标题】:how to implement tab functionality in an app?如何在应用程序中实现选项卡功能?
【发布时间】:2017-05-26 06:35:38
【问题描述】:

我正在尝试在不使用 js 的情况下实现选项卡功能。我从这里得到了示例

https://ampbyexample.com/advanced/tab_panels_with_amp-selector/

当我只有two 选项卡时,我可以使用此示例。 见输出 https://jsbin.com/vixaquloki/edit?html,output

但是当我尝试制作嵌套标签“另一个标签内的标签”时。。它什么也没显示。为什么? 查看我的代码

但是当我点击tab one 时,它会同时显示在tabs 中……但是当我点击“在选项卡内” 时,它会隐藏所有内容,为什么?

<amp-selector role="tablist"
              layout="container1"
              class="ampTabContainer">
    <div role="tab"
         class="tabButton"
         selected
         option="a">Tab one</div>
    <div role="tabpanel"
         class="tabContent">

【问题讨论】:

  • 你说 without js 为什么要标记 js ???
  • 它使用scripts 这就是为什么

标签: javascript jquery


【解决方案1】:

问题是所选命令发生冲突,请参阅此 我只是从内部选项卡中删除了选定的命令

    <script async src="https://cdn.ampproject.org/v0.js"></script>
    <script async custom-element="amp-selector" src="https://cdn.ampproject.org/v0/amp-selector-0.1.js"></script>
    <style amp-custom>
        .ampTabContainer {
            display: flex;
            flex-wrap: wrap;
        }

        .tabButton[selected] {
            outline: none;
            background: #ccc;
        }

        .tabButton {
            list-style: none;
            flex-grow: 1;
            text-align: center;
            cursor: pointer;
        }

        .tabContent {
            display: none;
            width: 100%;
            order: 1; /* must be greater than the order of the tab buttons to flex to the next line */
            border: 1px solid #ccc;
        }

        .tabButton[selected]+.tabContent {
            display: block;
        }

        /* For example below (not required) */
        .itemCustom {
            border: 1px solid #000;
            height: 280px;
            width: 380px;
            margin: 10px;
            text-align: center;
            padding-top: 140px;
        }
        amp-selector {
            padding: 1rem;
            margin: 1rem;
        }
    </style>

<amp-selector role="tablist" layout="container1" class="ampTabContainer">
    <div role="tab" class="tabButton" selected option="a">Tab one</div>
    <div role="tabpanel" class="tabContent">

      <div>one div 
      <amp-selector role="tablist" layout="container" class="ampTabContainer">
  <div role="tab" class="tabButton" option="a">inside Tab one</div>
  <div role="tabpanel" class="tabContent">Tab one content... </div>
  <div role="tab" class="tabButton" option="b">Tab two</div>
  <div role="tabpanel" class="tabContent">Tab two content... </div> </amp-selector> </div> </div>
    <div role="tab"
         class="tabButton"
         option="b">Tab two</div>
    <div role="tabpanel"
         class="tabContent">Tab two content... </div>

</amp-selector>

【讨论】:

    【解决方案2】:

    从以下位置删除 selected

    <div role="tab"
        class="tabButton"
        selected
        option="a">inside Tab one</div>
    

    更新

    我认为您想同时显示标签一的内容和标签一的内容。 要允许多选,请向amp-selector 元素添加多个属性。

    Here's an updated jsbin.

    【讨论】:

    • 分享 fddle 或 jsbin 链接
    • 查看我的更新。让我知道这是否是您想要的。
    • 没关系。我刚刚意识到这不能正常工作。
    • 所以这意味着我们不能使用嵌套的 amp=elector
    • 我不认为你可以,除非你使用 javascript 并在内部选项卡上模拟点击事件。
    猜你喜欢
    • 2023-04-05
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 2016-09-26
    相关资源
    最近更新 更多