ナビゲーションなどは日々の開発でよく使うので、記録として記事を書きます。ナビゲーションは終了/開始位置をクリックすることで実装され、ナビゲーションによって次の項目が自動的にスライドアウトされます。 アイデア:現在クリックされている項目の画面に対する位置を決定します。クリックされた位置が移動制限を満たしている場合は、自動スライド処理を実行します。 実装は次のとおりです。 ビュー <テンプレート> <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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: CentOS7 から CentOS8 にアップグレードする方法 (詳細な手順)
いろいろ苦労しましたが、やっと yum インストールの手順がわかりました。以前、バイナリ パッケージ...
実際には、対応する記述方法は多数ありますが、最も一般的なのは object + embedded で...
仮想マシン内の Ubuntu がネットワークに接続できない場合の効果的な解決策: 1. Ubuntu...
説明: テキストエリアの値の改行を新しい行に変更しますコードをコピーコードは次のとおりです。 <...
JS、CSSについてCS: ...上部のスタイルシートCSS式を避ける外部JS、CSSの使用JSと...
目次序文オンラインXMLエディタの必要性テクノロジー事前調査ビジュアルプログラミングVSCODEプラ...
netem と tc: netem は、Linux カーネル バージョン 2.6 以降で提供されるネ...
MySQL ページング クエリは通常、制限を通じて実装されます。 limit は 1 つまたは 2 ...
目次アレイ重複排除1 2層forループ(バブルソートの2層ループ記述に類似) 2 ループとインデック...
目次ネイティブJavaScriptとはA. 新しいブラウザでnullオブジェクトをチェックするコンス...
背景: MySQL では、レベルに制限がある場合、たとえば、ツリーの最大深度を事前に決定できる場合、...
この記事では、ローカルストレージの追加、削除、変更を実装するためのVueの具体的なコードを例として紹...
不明なドメイン名 www.baidu.com を Ping するホストのIPアドレスを変更する右クリ...
Windows システム向け MySQL インストール チュートリアルダウンロード1. https:...
MySQL の追加、削除、変更、クエリステートメント1. 練習シートを作成するここでの練習表は3つの...