適用シナリオ:新しい要件の 1 つはアンケート調査を行うことですが、必然的に多くの質問が含まれ、1 つの質問で複数の人が採点する必要があります。この現象は携帯電話でスライドするときに発生し、上にスワイプすると質問を忘れてしまいます。 そのため、一定の距離を計算した上でタイトルを配置する必要があります。スコアリングを容易にするために、エリアにスライドするタイトルを常に上部に固定します。 解決: 1. 最初に思い浮かぶのは固定レイアウトです。これは、タイトルが一定の距離に達すると画面の上部に固定されることを意味します。 (可能ですが、プロセスがあまりスムーズではありません) Sticky はこの要件を非常によく満たしますが、互換性 (IE との互換性) を考慮する必要があります。 スティッキー実装のアイデア:1. まず、スライダーの位置を記録し、スクロール イベントをリッスンする必要があります。 window.addEventListener("スクロール", this.handleScroll); コンポーネントが破棄される前にこのイベントを削除することを忘れないでください beforeDestroyed() { window.removeEventListener("スクロール"、this.handleScroll); } 2. 画面上部から各質問のタイトルの高さを計算し、配列を作成します。 // 各質問に必ず参照を設定してください。私の参照は各質問の ID です。 -- Vue の略語 --- <div :ref="質問ID" v-for="formData.questions の (質問、インデックス)" :key="インデックス" > // 乱雑さの問題を防ぐために、ソートも実行しました ---- js ----- this.topPositionArr = []; for (let key in this.$refs) { for (let idx in this.$refs[key]) { this.topPositionArr.push(this.$refs[key][idx].offsetTop); } } this.topPositionArr = [...新しいSet(this.topPositionArr)]; this.topPositionArrtopPositionArr = this.topPositionArr.sort( (a, b) => { a - b を返します。 } ); 3. スライドで監視した距離と取得したタイトルを比較し、見つかったタイトルを選択します。 // さまざまなブラウザと互換性があります。ブラウザによって offsetTop を取得する方法が異なります。handleScroll() { this.scrollTop = document.documentElement.scrollTop ? ドキュメント.documentElement.scrollTop : ドキュメント本体のスクロールトップ; scrollTop を this.scrollTop とします。 // 最初の質問の scrollTop は変更されず、2 番目の質問の scrollTop が変更されます this.topPositionArr.forEach((item, idx) => { (idx > 1)の場合{ this.scrollTop = scrollTop + 220; } //なぜこれを行うのですか? IEは固定レイアウトをサポートしていないため、補助するプラグインが必要です。if (this.scrollTop > item) { elements = document.getElementById(`sticky${idx}`); スティッキーフィルに要素を追加します。 } }); } 4. IEの互換性の問題 IEはスティッキーレイアウトをサポートしていないため、ホイールのスティッキーフィルが必要です。 npm インストール スティッキーフィル 糸 スティッキーフィルを追加 ---ビュー--- <div :id="`sticky${question.index}`" クラス="isSticky" > 単一ファイルのインポート 必要なページにインポートします。 <script src="stickyfill.min.js へのパス"></script> var Stickyfill = require("stickyfill"); var スティッキーフィル = スティッキーフィル(); js ファイル: 具体的な方法については上記3を参照 elements = document.getElementById(`sticky${idx}`); スティッキーフィルに要素を追加します。 上記は完璧に実現できます~~~ 最終効果画像:CSS スティッキーレイアウトを使用してヘッダーを上部に配置する方法についての記事はこれで終わりです。より関連性の高い CSS スティッキーコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 |
<<: Docker ケース分析: Redis サービスの構築
>>: React の調整アルゴリズム Diffing アルゴリズム戦略の詳細な説明
この記事では、参考までに、Baidu Mapsを使用して都市の位置特定を実現するVueの具体的なコー...
<br />緑は黄色と青(寒色と暖色)の中間の色で、より穏やかな色です。そのため、緑は最...
ソースからApacheをインストールする1. Apacheソースコードをアップロードして必要なソフト...
1. INSERT INTO SELECT文ステートメントの形式は次のとおりです: Insert ...
目次1. ACIDの特性トランザクション制御構文3. トランザクション同時実行例外1. ダーティリー...
目次1. コンポーネントをうまく活用してコードを整理する1. UIコンポーネントを抽出する2. モジ...
目次1. ソフトウェアとシステムイメージ2. 仮想マシンを作成する3. CentOS8をインストール...
目次実装効果図依存関係をインストールするカスタムツリーコントロールその他の実装要約するVueでは、要...
目次1. 覚えておくべき知識1. 変数タイプ2. シェル変数の説明3. シングルクォート、ダブルクォ...
ダイナミックレム1. まず、現在の長さの単位を紹介しましょうpx em Mの幅 / 漢字の幅 1em...
1. Baidu Eslint Ruleプラグインをインストールする npm i -D eslint...
Linux インストール MySQL ノート1. MySQL データベース サーバーをインストールす...
目次1. パーティクルエフェクト2. シーンを読み込む3. さまざまな粒子効果の実現エンディング: ...
1. ネストされたルーティングはサブルーティングとも呼ばれます。実際のアプリケーションでは、通常、ネ...
アプリケーションが牛のように遅い理由は数多くあります。ネットワーク、システム アーキテクチャ、または...