Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Semak jika Elemen Dimuatkan Secara Dinamik Kelihatan Selepas Menatal?

Bagaimanakah Saya Boleh Semak jika Elemen Dimuatkan Secara Dinamik Kelihatan Selepas Menatal?

Linda Hamilton
Linda Hamiltonasal
2024-12-20 09:36:091003semak imbas

How Can I Check if Dynamically Loaded Elements Are Visible After Scrolling?

Menyelesaikan Keterlihatan Elemen Dimuatkan Secara Dinamik selepas Menatal

Pernyataan Masalah:

Apabila memuatkan elemen secara dinamik melalui AJAX, ia boleh mencabar untuk menentukan sama ada ia muncul dalam kawasan halaman yang boleh dilihat, terutamanya jika halaman memerlukan menatal.

Penyelesaian:

Untuk menentukan keterlihatan elemen selepas menatal, kita boleh memanfaatkan fungsi JavaScript yang dipanggil isScrolledIntoView():

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

Pendekatan Alternatif:

Utiliti alternatif fungsi, Utils.isElementInView(), menyediakan kedua-dua pilihan fullyInView dan partiallyInView:

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

Penggunaan:

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

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Semak jika Elemen Dimuatkan Secara Dinamik Kelihatan Selepas Menatal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn