スポンサー
Support Framework7

メニューリスト

    メニューリストは、リストビューを拡張したものです。メニューリストは、通常のリンクリストとは異なり、アプリの現在アクティブな画面(またはセクション)を示すように設計されています。タブバーのようなもので、リストの形をしていると考えてください。

    メニューリストのレイアウト

    それでは、リストビューのメニューリストのレイアウト構造を見てみましょう。

    <div class="list menu-list">
      <ul>
        <li>
          <a href="#" class="item-content item-link item-selected">
            <div class="item-inner">
              <div class="item-title">Item 1</div>
            </div>
          </a>
        </li>
        <li>
          <a href="#" class="item-content item-link">
            <div class="item-inner">
              <div class="item-title">Item 2</div>
            </div>
          </a>
        </li>
        ...
      </ul>
    </div>

    構造

    • menu-list - メニューリストの表示を有効にするために、Listに追加しなければならないクラスです。
      • item-selected - メニューリストのアイテムに追加されるクラスで、現在アクティブなアイテムであることを示します。

    Example

    <template>
      <div class="page">
        <div class="navbar">
          <div class="navbar-bg"></div>
          <div class="navbar-inner sliding">
            <div class="title">Menu List</div>
          </div>
        </div>
        <div class="page-content">
          <div class="block block-strong">
            <p>Menu list unlike usual links list is designed to indicate currently active screen (or section) of your app. Think about it like a Tabbar but in a form of a list.</p>
          </div>
          <div class="list menu-list">
            <ul>
              <li>
                <a
                  href="#"
                  class="item-content item-link ${selected === 'home' ? 'item-selected' : ''}"
                  @click=${()=> setItem('home')}
                >
                  <div class="item-media">
                    <i class="icon material-icons if-md">home</i>
                    <i class="icon f7-icons if-not-md">house</i>
                  </div>
                  <div class="item-inner">
                    <div class="item-title">Home</div>
                  </div>
                </a>
              </li>
              <li>
                <a
                  href="#"
                  class="item-content item-link ${selected === 'profile' ? 'item-selected' : ''}"
                  @click=${()=> setItem('profile')}
                >
                  <div class="item-media">
                    <i class="icon material-icons if-md">person</i>
                    <i class="icon f7-icons if-not-md">person_fill</i>
                  </div>
                  <div class="item-inner">
                    <div class="item-title">Profile</div>
                  </div>
                </a>
              </li>
              <li>
                <a
                  href="#"
                  class="item-content item-link ${selected === 'settings' ? 'item-selected' : ''}"
                  @click=${()=> setItem('settings')}
                >
                  <div class="item-media">
                    <i class="icon material-icons if-md">settings</i>
                    <i class="icon f7-icons if-not-md">gear_alt_fill</i>
                  </div>
                  <div class="item-inner">
                    <div class="item-title">Settings</div>
                  </div>
                </a>
              </li>
            </ul>
          </div>
          <div class="list media-list menu-list">
            <ul>
              <li>
                <a
                  href="#"
                  class="item-content item-link ${selectedMedia === 'home' ? 'item-selected' : ''}"
                  @click=${()=> setItemMedia('home')}
                >
                  <div class="item-media">
                    <i class="icon material-icons if-md">home</i>
                    <i class="icon f7-icons if-not-md">house</i>
                  </div>
                  <div class="item-inner">
                    <div class="item-title-wrap">
                      <div class="item-title">Home</div>
                    </div>
                    <div class="item-subtitle">Home subtitle</div>
                  </div>
                </a>
              </li>
              <li>
                <a
                  href="#"
                  class="item-content item-link ${selectedMedia === 'profile' ? 'item-selected' : ''}"
                  @click=${()=> setItemMedia('profile')}
                >
                  <div class="item-media">
                    <i class="icon material-icons if-md">person</i>
                    <i class="icon f7-icons if-not-md">person_fill</i>
                  </div>
                  <div class="item-inner">
                    <div class="item-title-wrap">
                      <div class="item-title">Profile</div>
                    </div>
                    <div class="item-subtitle">Profile subtitle</div>
                  </div>
                </a>
              </li>
              <li>
                <a
                  href="#"
                  class="item-content item-link ${selectedMedia === 'settings' ? 'item-selected' : ''}"
                  @click=${()=> setItemMedia('settings')}
                >
                  <div class="item-media">
                    <i class="icon material-icons if-md">settings</i>
                    <i class="icon f7-icons if-not-md">gear_alt_fill</i>
                  </div>
                  <div class="item-inner">
                    <div class="item-title-wrap">
                      <div class="item-title">Settings</div>
                    </div>
                    <div class="item-subtitle">Settings subtitle</div>
                  </div>
                </a>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </template>
    <script>
      export default (props, { $update }) => {
        let selected = 'home';
        let selectedMedia = 'home';
    
        const setItem = (newItem) => {
          selected = newItem;
          $update();
        }
        const setItemMedia = (newItem) => {
          selectedMedia = newItem;
          $update();
        }
        return $render;
      }
    </script>