この記事では主に、Vue を使用してタブ ナビゲーション バーを実装し、flex レイアウトを使用して左右のスライドを実現し、ボタンの位置を計算し、最初の画面に表示された最後の要素をクリックしてもまだ表示されていない要素がある場合に、表示されていない要素を自動的にスライドして表示する方法について説明します。 タブナビゲーションバーのレイアウト: <セクションクラス="テーマリスト"> <div class="fixed-nav" ref="fixednav"> <div class="fixed-nav-content"> <p v-for="(item, index) テーマ内" :key="インデックス" :class="['タブタイトル', アクティブID === インデックス && 'タブの選択']" @click="changeTab(インデックス、$event)" > {{ アイテム }} </p> </div> </div> </セクション> テーマ: ['CSDN ブログ'、'ブログガーデン'、'大学受験がんばれ'、'高校受験がんばれ'、'リトルジョイ'、'70周年']、 アクティブID: 0 ナビゲーション バーのスタイル コード: .テーマリスト{ 上マージン: 12px; } .固定ナビゲーション{ オーバーフローx: スクロール; -webkit-オーバーフロースクロール: タッチ; } .fixed-nav-content { ディスプレイ: フレックス; } .タブタイトル{ パディング: 0 13px; 右マージン: 12px; 色: #141414; 境界線の半径: 13px; フォントサイズ: 12px; フレックス収縮: 0; 高さ: 0.52rem; 行の高さ: 0.52rem; } この時点で、次のスタイルを実装し、タブを左右にスライドすることができます。 幅が外部コンテナの幅より大きい場合にタブが縮小されないように、スタイル コードに このようにして、基本的なタブ ナビゲーション バーが実装されました。次に、これを実装します。「高校入試頑張ってください」をクリックすると、タブ全体が左にスライドして、残りのタブ要素が表示されます。 changeTab(id, イベント) { // 選択されたものが現在アクティブなものと異なる場合 if (id !== this.activeId) { this.activeId = id; // 現在のボタンの位置を計算して、移動する必要があるかどうかを確認します const spanLeft = event.clientX; // 現在クリックされている要素の左の距離 const divBox = document.querySelector(".select-tab").clientWidth / 2; // クリックされた要素の幅の半分 const totalWidths = document.body.clientWidth; // 画面全体の幅 const widths = totalWidths / 2; // 画面の幅の半分 const spanRight = totalWidths - spanLeft; // 要素の右の距離 const scrollBox = document.querySelector(".fixed-nav"); // 最も外側の要素を取得します const scrollL = scrollBox.scrollLeft; // スクロールバーがスクロールする距離 // 要素の左または右の距離が 100 未満の場合にスライドします if (spanRight < 100 || spanLeft < 100) { scrollBox.scrollLeft = scrollL + (spanLeft - 幅) + divBox; } } } この方法ではタブの自動スクロールを実現できますが、スライド時にスクロールバーが表示されるため、見た目があまり美しくないという問題がまだあります。 /*水平スクロールバーと垂直スクロールバーのサイズに応じて、スクロールバーの高さと幅、および背景の高さと幅を定義します*/ ::-webkit-スクロールバー{ 幅: 0.01rem; 不透明度: 0; 表示: なし; } /*スクロールバートラックの内側の影と丸い角を定義します*/ ::-webkit-スクロールバートラック{ 背景色: #fff; 不透明度: 0; } /*スライダーの内側の影と丸い角を定義します*/ ::-webkit-スクロールバー-サムネイル { 幅: 0.01rem; 境界線の半径: 0.01rem; 不透明度: 0; } このようにナビゲーションバーが実現され、会社の業務に合わせてナビゲーションバーのスタイルを変更することができます! これで、左右スライドをサポートするタブナビゲーションバーの Vue 実装に関するこの記事は終了です。Vue の左右スライドナビゲーションバーに関する関連コンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
目次1- エラーの詳細2-シングルソリューション2.1-ディレクトリ C:\Windows\Syst...
目次背景DHCPの設定DHCP ファイル (動的ホスト構成プロトコル) の編集tftp 設定sysl...
目次1. SQL言語の基本機能の紹介2. データ定義言語の目的3. データベースの作成と破棄4. デ...
1. メディアクエリ方式 /*iPhone X への適応*/ @media 画面のみ、(デバイス幅:...
序文最近、同社の業務の一部がコンピュータルームに移転し、ホストリソースの監視と管理をより便利に行うた...
序文この記事では、DBA がいないチームが参考にできるように、MySQL の一般的な使用に関するヒン...
すべてのプラットフォーム用の MySQL ダウンロードは、MySQL ダウンロードから入手できます。...
原因最近、プロジェクトのリファクタリングを始めたのですが、マスタースレーブと読み取り書き込み分離を使...
目次1. 背景2. 複合インデックスを理解する3. 左端一致原則4. フィールド順序の影響5. 単一...
1. 一般的な使用法: (1)%で使用する% は 1 つ以上の文字のワイルドカードを表します。たとえ...
今日はvueとmomentで作ったカウントダウンを紹介したいと思います。具体的な内容は以下のとおりで...
この記事では、主に、上下固定と中スライドレイアウトを実現するためのフレックスレイアウトのレイアウト方...
最近はコース設計を実現するために、フロントエンドも少しやっています。今日はいくつかの機能を実現するた...
序文この記事では、主にWeb開発のためのクロスドメインソリューションを紹介し、参考と学習のために共有...
Object.definePropertyの理解文法:オブジェクト.defineProperty(o...