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

推薦する

シェルを使用して複数のサーバーでバッチ操作を実行する方法

目次SSHプロトコルパスワード接続プロセスsshツールssh公開鍵ログインバッチ操作複数サーバーファ...

サーバー上で selenium+chromedriver を実行するための詳細なチュートリアル

1. はじめにSelenium を使用して Web サイトからデータをスクレイピングしたいのですが、...

MySQL無料インストール版のパスワードの設定と変更に関するチュートリアル

ステップ 1: 環境変数を構成する (解凍パス: G:\mysql\mysql-5.7.21-win...

ドラッグ可能で編集可能なガントチャートの詳細な説明(HighchartsはVueとReactで使用できます)

序文Excel は強力で、広く使用されています。 Web アプリケーションの登場と改善に伴い、ユーザ...

MySQL のデータベース パフォーマンスに影響を与える要因の説明

データベースのパフォーマンスに関する話面接では、「データベースにどのくらい精通していますか?」など、...

LinuxデバッガGDBの基本的な使い方の詳細な説明

目次1. 概要2. gdbデバッグ2.1. ブレークポイントを設定する2.1.1. ブレークポイント...

Linux 環境に MySQL 8.0 をインストールするプロセスの紹介

目次序文1. Linux は yum ソースを変更します (MYSQL のインストールが遅い場合は試...

CentOS7 ファイアウォール操作コマンドの完全なリスト

目次インストール: 1. ファイアウォールの基本的な使い方2. ファイアウォールd-cmdを設定する...

CSSでnグリッドレイアウトを実装する方法

一般的なアプリケーションシナリオ現在のアプリのインターフェースは基本的に同じであり、グリッドレイアウ...

MySQLデータベースのスケジュールバックアップを実装する方法

1. シェルスクリプトを作成する vim バックアップdb.sh 次のようにスクリプトを作成します。...

VMware ESXi6.7 の簡単なセットアップ(画像とテキスト付き)

1. VMware vSphere の概要VMware vSphere は、業界をリードする最も信...

均一なアニメーション効果を実現するJavaScript

この記事の例では、JavaScriptで等速アニメーションを実装するための具体的なコードを参考までに...

Dockerコンテナに入る方法と出る方法

1 Dockerサービスを開始するまず、docker サービスを開始する方法を知っておく必要がありま...

Brotli圧縮アルゴリズムを有効にするNginxの実装プロセスの詳細な説明

序文Web アプリケーションでは、トラフィックを節約し、転送データのサイズを縮小し、転送効率を向上さ...