ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript でページをスクロールした後に要素が表示されるかどうかを確認するにはどうすればよいですか?

JavaScript でページをスクロールした後に要素が表示されるかどうかを確認するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-28 01:11:10
オリジナル
535 人が閲覧しました

How Can I Verify If an Element Is Visible After Page Scrolling with JavaScript?

スクロール後の要素の可視性の検証

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート