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 ビューの紹介と基本操作のチュートリアル

推薦する

データベースSQL SELECTクエリの仕組み

私たちは Web 開発者として、プロの DBA ではありませんが、データベースなしではやっていけませ...

JavaScript が Jingdong の虫眼鏡の特殊効果を模倣

この記事では、Jingdong虫眼鏡を模倣したJavaScriptの具体的なコードを参考までに共有し...

Docker5フル機能の港湾倉庫構築プロセス

Harbor は、Docker イメージを保存および配布するためのエンタープライズ レベルのレジスト...

Baidu 入力メソッドが API を公開、自由に移植して使用できると主張

百度入力方式の担当者は、百度入力方式のオープンAPIの最大の利点は操作が便利であることであり、プラッ...

Linux で環境変数 JAVA_HOME を変更/設定する方法について簡単に説明します。

1. 永久的な変更、すべてのユーザーに有効# vi /etc/プロファイル//キーボードの[Shi...

Linux スワップメモリ​​を拡張する方法

スワップ メモリとは、主に物理メモリが不足している場合に、システムがハード ディスク領域の一部をサー...

IE6のmin-widthとmin-heightと互換性を持たせる簡単な方法

ウェブサイトがワイドスクリーンの場合、ブラウザ ウィンドウを左右にドラッグすると、ウェブサイトの幅が...

面接の質問: 3 行 3 列のレイアウト、表は結合され、ネストされた表は許可されません

面接の質問で、3 行 3 列のレイアウトが求められます。1 行目の 2 番目の列と 2 行目の 2 ...

Linux サーバーに SSH パスワードなしでログインする方法

テスト サーバーにログインするたびに、必ず ssh ログインのパスワードを入力する必要があります。ロ...

方言変換のためのApache Calciteコード

意味Calcite は、Sql を SqlNode に解析し、次に SqlNode を特定のデータベ...

MySQL 8.0.17 インストール グラフィック チュートリアル

この記事では、参考までにMySQL 8.0.17のインストールグラフィックチュートリアルを紹介します...

CentOS6.5 でファイル共有サービス Samba を構築するチュートリアル

Samba サービス:このコンテンツはサンバサービス学習者の参考用ですケースの説明:企業の管理者は、...

VMwareのCentosシステムでNavicatがMySQLサーバーに接続できない問題を解決します

ホスト 'xxxx' はこの MySQL サーバーに接続できませんエラー: 1130...

docker デプロイメントの実装手順 lnmp-wordpress

目次1. 実験環境2. Dockerソースをインストールする3. Dockerをインストールする4....

MySQL で浮動小数点データを文字データに変換するときに起こりうる問題の詳細な説明

序文この記事は主に、MySQL で浮動小数点型を文字型に変換するときに発生する問題を紹介します。これ...