首頁 >web前端 >js教程 >如何偵測動態載入的元素在捲動後是否可見?

如何偵測動態載入的元素在捲動後是否可見?

Susan Sarandon
Susan Sarandon原創
2024-12-20 02:08:10137瀏覽

How Can I Detect if a Dynamically Loaded Element is Visible After Scrolling?

滾動後偵測元素可見性

對於使用 AJAX 動態載入的元素,確定它們在視窗中的可見性至關重要。這對於滾動後出現的元素尤其相關。這是解決此問題的有效方法:

使用自訂函數:

以下函數檢查元素在目前視窗中是否可見:

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

var Utils = new Utils();

用法:

確定如果元素可見,只需呼叫此函數:

var isElementInView = Utils.isElementInView($('#flyout-left-container'), false);

if (isElementInView) {
    console.log('in view');
} else {
    console.log('out of view');
}

透過實作這些方法,您可以輕鬆偵測動態載入元素的可見性,從而最佳化頁面互動和使用者體驗。

以上是如何偵測動態載入的元素在捲動後是否可見?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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