スクロール後の要素の可視性の検証
AJAX を介して要素を動的にロードする場合、特に要素がスクロール後にのみ表示される場合、その可視性を確保することが困難になることがあります。ページをスクロールします。この記事では、スクロール後に要素がページの表示部分内にあるかどうかを判断する方法について説明します。
解決策: JavaScript の可視性チェック
要素の可視性を確認するには、JavaScript コードを使用します。雇用することができる。これを実現する関数は次のとおりです。
function isScrolledIntoView(elem) { var docViewTop = $(window).scrollTop(); var docViewBottom = docViewTop + $(window).height(); var elemTop = $(elem).offset().top; var elemBottom = elemTop + $(elem).height(); return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); }
この関数は要素を入力として受け取り、それが表示されているかどうかを示すブール値を返します。
拡張ユーティリティ関数
より汎用性の高いアプローチについては、次のユーティリティを検討してください。 function:
function Utils() { } Utils.prototype = { constructor: Utils, isElementInView: function (element, fullyInView) { var pageTop = $(window).scrollTop(); var pageBottom = pageTop + $(window).height(); var elementTop = $(element).offset().top; var elementBottom = elementTop + $(element).height(); if (fullyInView === true) { return ((pageTop < elementTop) && (pageBottom > elementBottom)); } else { return ((elementTop <= pageBottom) && (elementBottom >= pageTop)); } } };
この関数は、要素と、要素を完全に表示するか部分的に表示するかを示すオプションのフラグという 2 つのパラメータを受け入れます。
使用法
この関数を使用するには、Utils クラスのインスタンスを作成し、必要な要素とオプションを指定して isElementInView メソッドを呼び出すだけです。フラグ:
var Utils = new Utils(); var isElementInView = Utils.isElementInView($('#flyout-left-container'), false); if (isElementInView) { console.log('in view'); } else { console.log('out of view'); }
以上がJavaScript でページをスクロールした後に要素が表示されるかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。