この記事では主に、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. CSS を使用して、小さな尖った角のチャット ダイアログ ボックスと尖った角の吹き出しを描画...
長期間稼働しているデータベースの場合、テーブルがストレージ領域を占有しすぎるという問題がよく発生しま...
これ以上無駄話をして時間を無駄にしないので、今日の話題を始めましょう。 HTML のメタタグ1. メ...
序文エージェントの役割は何ですか? - 複数のドメイン名が同じサーバーに解決される- 1つのサーバー...
目次Vuex は単一の状態ツリーを使用するため、すべてのアプリケーション状態が比較的大きなオブジェク...
目次k8sのコントローラータイプポッドとコントローラの関係デプロイメント(ステートレスアプリケーショ...
前回の記事では、docker compose を使用して FastDfs ファイル サーバーをインス...
<br /> テキスト、記号、リンクの3つの側面に焦点を当て、主に中国語で、個人的な執筆...
tcpdump は、ネットワークの問題のトラブルシューティングに効果的に役立つ、柔軟で強力なパケット...
目次混合継承の影響: 1. 継承Vue.extend メソッドプロパティを拡張する2. ミックスイ...
序文:私は仕事柄、オンラインライブストリーミングの分野に携わっており、ビデオの再生やダウンロードには...
インターネット上には、正しい方法であっても、使用しても正しい結果が得られない方法が数多くあります。正...
MySQL 8 の公式バージョン 8.0.11 がリリースされました。公式発表によると、MySQL ...
1. 各関数はオブジェクトであり、メモリを占有します。メモリ内のオブジェクトが増えるほど、パフォーマ...
Linux へのリモート デスクトップ接続といえば、まず VNC の使用を思い浮かべるかもしれません...