首頁 >web前端 >js教程 >如何使用 JavaScript 驗證頁面捲動後元素是否可見?

如何使用 JavaScript 驗證頁面捲動後元素是否可見?

Patricia Arquette
Patricia Arquette原創
2024-12-28 01:11:10534瀏覽

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 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));
        }
    }
};

此函數接受兩個參數:一個元素和一個可選標誌,指示該元素是否應該完全或部分可見。

用法

要使用該函數,只需建立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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn