適用シナリオ:新しい要件の 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 アルゴリズム戦略の詳細な説明
<!--[lte IE 6の場合]> <![endif]--> IE6以下で...
Tomcat テストで 404 問題が発生します。問題は次のとおりです。 HTTP ステータス 40...
Windows 10 1903 は、2019 年に Microsoft がリリースした Windo...
目次序文コンポーネントライブラリの作成主要な構成の変更ディレクトリレイアウトの調整ライブラリ構築のた...
この記事では、マスク レイヤーの中空化を実現する 4 つの方法を紹介します。みんなと共有し、自分用の...
1. はじめにWeb プロジェクトを Linux サーバーで公開する場合、SSL 証明書を構成する必...
現在、アプリケーション開発は基本的にフロントエンドとバックエンドに分離されています。主流のフロントエ...
目次MySQL の基本的な共通コマンド1. SQL文2. テーブルを作成する3. フィールドのプロパ...
Dockerの概要Docker はオープンソースのソフトウェア展開ソリューションです。 Docker...
私はプロジェクトを実行するために react を使い始めたばかりで、非常に未熟で完全な初心者です。私...
最近のプロジェクトでは、Google ロボット認証を使用する必要があります。これには VPN が必要...
1. CSS を使用して、小さな尖った角のチャット ダイアログ ボックスと尖った角の吹き出しを描画...
Nginxのアクセス制限設定とはNginx のアクセス制限は、IP ベースのアクセス制御とユーザーベ...
translate と transition は非常に強力で、習得するのは不可能だといつも感じていま...
目次スロークエリログとは何ですか?スロークエリを有効にする方法ログ分析ツール mysqldumpsh...