프로그래밍 언어/HTML,CSS,JS

스크롤 후 요소가 보이는지 확인하는 방법

Rateye 2022. 1. 6. 14:54
728x90
반응형
질문 : 스크롤 후 요소가 보이는지 확인하는 방법은 무엇입니까?

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');
}
출처 : https://stackoverflow.com/questions/487073/how-to-check-if-element-is-visible-after-scrolling
728x90
반응형