ナビゲーションなどは日々の開発でよく使うので、記録として記事を書きます。ナビゲーションは終了/開始位置をクリックすることで実装され、ナビゲーションによって次の項目が自動的にスライドアウトされます。 アイデア:現在クリックされている項目の画面に対する位置を決定します。クリックされた位置が移動制限を満たしている場合は、自動スライド処理を実行します。 実装は次のとおりです。 ビュー <テンプレート> <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 にアップグレードする方法 (詳細な手順)
目次SSHプロトコルパスワード接続プロセスsshツールssh公開鍵ログインバッチ操作複数サーバーファ...
1. はじめにSelenium を使用して Web サイトからデータをスクレイピングしたいのですが、...
ステップ 1: 環境変数を構成する (解凍パス: G:\mysql\mysql-5.7.21-win...
序文Excel は強力で、広く使用されています。 Web アプリケーションの登場と改善に伴い、ユーザ...
データベースのパフォーマンスに関する話面接では、「データベースにどのくらい精通していますか?」など、...
目次1. 概要2. gdbデバッグ2.1. ブレークポイントを設定する2.1.1. ブレークポイント...
目次序文1. Linux は yum ソースを変更します (MYSQL のインストールが遅い場合は試...
目次インストール: 1. ファイアウォールの基本的な使い方2. ファイアウォールd-cmdを設定する...
一般的なアプリケーションシナリオ現在のアプリのインターフェースは基本的に同じであり、グリッドレイアウ...
理由: MySQL 5.7.5 以降では機能依存関係の検出が実装されています。 only_full_...
1. シェルスクリプトを作成する vim バックアップdb.sh 次のようにスクリプトを作成します。...
1. VMware vSphere の概要VMware vSphere は、業界をリードする最も信...
この記事の例では、JavaScriptで等速アニメーションを実装するための具体的なコードを参考までに...
1 Dockerサービスを開始するまず、docker サービスを開始する方法を知っておく必要がありま...
序文Web アプリケーションでは、トラフィックを節約し、転送データのサイズを縮小し、転送効率を向上さ...