Vueは左上と右上のスライドナビゲーションを実装します

Vueは左上と右上のスライドナビゲーションを実装します

ナビゲーションなどは日々の開発でよく使うので、記録として記事を書きます。ナビゲーションは終了/開始位置をクリックすることで実装され、ナビゲーションによって次の項目が自動的にスライドアウトされます

アイデア:現在クリックされている項目の画面に対する位置を決定します。クリックされた位置が移動制限を満たしている場合は、自動スライド処理を実行します。

実装は次のとおりです。

ビュー

<テンプレート>
  <div class="デバッグインデックスページ">
    <div class="tab-layout" id="scroller">
      <ul v-for="(tab, idx) in tabList" :key="idx​​">
        <li
          :id="`タブ-${tab.id}`"
          クラス="タブ項目"
          @click="onClickTab(タブ)"
          :style="`背景:${tab.select ? '赤' : 'なし'}`"
        >
          {{タブ.テキスト}}
        </li>
      </ul>
    </div>
  </div>
</テンプレート>

JS

エクスポートデフォルト{

    データ() {
        戻る {
            タブリスト: [],
        }
    },

    作成された() {
        リスト = [
            「私の貴族たち」
            「ノーブル1」、
            「マイノーブル2」
            「ノーブル3」、
            「ノーブル4」、
            「ノーブル5」、
            「マイノーブル6」
            「マイノーブル7」
        ];

        リスト.forEach((テキスト、idx) => {
            this.tabList.push({
                文章、
                id: idx, // タブ識別子 select: idx == 0, // 選択されているかどうか index: idx // 表示されている場所 });
        });
    },

    計算: {
        curTab() {
            this.tabList.find(v => v.select) を返します。
        }
    },

    メソッド: {

        onClickTab(タブ情報) {
            curTab を this.curTab とします。
            curTab.id == tabInfo.id の場合、戻り値は次のようになります。
            {インデックス、id} = tabInfo;
            // スライド コントロール let scroller = document.getElementById("scroller");
            speed = scroller.scrollWidth / this.tabList.length; とします。
            tab = document.getElementById(`tab-${id}`);
            bWidth を document.body.clientWidth とします。
            // 右をクリックします if (curTab.index < index && tab.clientWidth * index >= bWidth - speed) {
            // スライド距離 scroller.scrollLeft = (index + 2) * speed - bWidth;
            } そうでない場合、(curTab.index > index && (tab.clientWidth * index - (scroller.scrollLeft + bWidth) < speed)) {
            // スライド距離 scroller.scrollLeft = (index - 1) * speed;
            }

            curTab.select を false に設定します。
            this.tabList[インデックス].select = true;
        }
    }
}

少ない

.debug-index-page {
    幅: 100%;
    オーバーフロー:非表示;


  .タブレイアウト{
    幅: 100%;
    オーバーフローx: スクロール;
    ディスプレイ: フレックス;

    .タブ項目{
      幅: 1rem;
      テキスト配置: 中央;
    }
  }
}

上記はナビゲーション表示です。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vueはタブナビゲーションバーを実装し、左右のスライド機能をサポートしています
  • Vue は左右のスライド効果のサンプルコードを実装します
  • Vue+swiperは左右にスライドするテスト問題機能を実装します
  • Vueはスワイパーを使用して左右にスライドすることで画像を切り替える
  • Vueはbetter-scrollを使用してスライドと左右の連動を実現しています
  • Vueモバイル端末での左右スライドイベントの詳しい説明
  • Vueモバイル端末は携帯電話を左右にスライドして入力するアニメーションを実現
  • Vueでモバイル端末上で左右スライド効果を実現する方法
  • Vueをベースにページ切り替えの左右スライド効果を実装する
  • Vueの左右スライドボタングループコンポーネントの使い方の詳細な説明

<<:  CentOS7 から CentOS8 にアップグレードする方法 (詳細な手順)

>>:  MySQL ビューの紹介と基本操作のチュートリアル

推薦する

Linux での MySQL 5.7.18 yum のアンインストールからインストールまでのプロセスの図

いろいろ苦労しましたが、やっと yum インストールの手順がわかりました。以前、バイナリ パッケージ...

ChromeとIEに対応したWMPに埋め込まれたHTMLの詳細な紹介

実際には、対応する記述方法は多数ありますが、最も一般的なのは object + embedded で...

Ubuntuがネットワークに接続できない場合の解決策

仮想マシン内の Ubuntu がネットワークに接続できない場合の効果的な解決策: 1. Ubuntu...

テキストエリアのテキストをHTMLに変換する方法、つまり復帰改行について

説明: テキストエリアの値の改行を新しい行に変更しますコードをコピーコードは次のとおりです。 <...

ページ リファクタリング スキル - Javascript、CSS

JS、CSSについてCS: ...上部のスタイルシートCSS式を避ける外部JS、CSSの使用JSと...

js を使用して XML オンライン エディターを作成する例

目次序文オンラインXMLエディタの必要性テクノロジー事前調査ビジュアルプログラミングVSCODEプラ...

Linux でネットワーク パケット損失と遅延をシミュレートする方法

netem と tc: netem は、Linux カーネル バージョン 2.6 以降で提供されるネ...

MySQLのページング制限のパフォーマンス問題についての簡単な説明

MySQL ページング クエリは通常、制限を通じて実装されます。 limit は 1 つまたは 2 ...

Javascript配列の重複排除のいくつかの方法の詳細な説明

目次アレイ重複排除1 2層forループ(バブルソートの2層ループ記述に類似) 2 ループとインデック...

ネイティブ JavaScript でオブジェクトが空かどうかをチェックする実装例

目次ネイティブJavaScriptとはA. 新しいブラウザでnullオブジェクトをチェックするコンス...

MySQLはカスタム関数を使用して親IDまたは子IDを再帰的に照会します

背景: MySQL では、レベルに制限がある場合、たとえば、ツリーの最大深度を事前に決定できる場合、...

Vueはローカルストレージの追加、削除、変更機能を実装します

この記事では、ローカルストレージの追加、削除、変更を実装するためのVueの具体的なコードを例として紹...

CentOS 7 はネットワークカードを変更した後、インターネットにアクセスできません

不明なドメイン名 www.baidu.com を Ping するホストのIPアドレスを変更する右クリ...

Windows システム mysql5.7.18 インストール グラフィック チュートリアル

Windows システム向け MySQL インストール チュートリアルダウンロード1. https:...

MySQL の詳細な単一テーブルの追加、削除、変更、クエリの CRUD ステートメント

MySQL の追加、削除、変更、クエリステートメント1. 練習シートを作成するここでの練習表は3つの...