懶加載

如何判斷一個(gè)元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫(xiě)一個(gè)函數(shù) isVisible實(shí)現(xiàn)

function isVisible($node) {
            var windowHeight = $(window).height(),
                scrollTop = $(window).scrollTop(),
                offsetTop = $node.offset().top,
                nodeHeight = $node.outerHeight(true);
            if (windowHeight + scrollTop > offsetTop && scrollTop < offsetTop + nodeHeight) {
                return true;
            } else {
                return false;
            }

        }

當(dāng)窗口滾動(dòng)時(shí),判斷一個(gè)元素是不是出現(xiàn)在窗口可視范圍。每次出現(xiàn)都在控制臺(tái)打印 true 。用代碼實(shí)現(xiàn)

        $(window).scroll(function(){
            if(isShow($('#hello'))){
                console.log(true);
            }else{
                console.log(false);
            }
        })
        function isShow($node) {
            var windowHeight = $(window).height(),
                scrollTop = $(window).scrollTop(),
                offsetTop = $node.offset().top,
                nodeHeight = $node.outerHeight(true);
            if (windowHeight + scrollTop > offsetTop && scrollTop < offsetTop + nodeHeight) {
                return true;
            } else {
                return false;
            }

        }

當(dāng)窗口滾動(dòng)時(shí),判斷一個(gè)元素是不是出現(xiàn)在窗口可視范圍。在元素第一次出現(xiàn)時(shí)在控制臺(tái)打印 true,以后再次出現(xiàn)不做任何處理。用代碼實(shí)現(xiàn)

        $(window).scroll(function () {
            if ($('#hello').not('.load').length === 1 && isVisible($('#hello'))) {
                console.log(true);
                $('#hello').addClass('load');
            } else {
                console.log(false);
            }
        })

        function isVisible($node) {
            var windowHeight = $(window).height(),
                scrollTop = $(window).scrollTop(),
                offsetTop = $node.offset().top,
                nodeHeight = $node.outerHeight(true);
            if (windowHeight + scrollTop > offsetTop && scrollTop < offsetTop + nodeHeight) {
                return true;
            } else {
                return false;
            }

        }

圖片懶加載的原理是什么?

  • 在頁(yè)面載入的時(shí)候?qū)㈨?yè)面上的圖片地址指向一張圖片,等圖片進(jìn)入窗口可視區(qū)域時(shí),把在自定義屬性中的真實(shí)圖片地址放入src屬性中,實(shí)現(xiàn)當(dāng)前區(qū)域加載。

實(shí)現(xiàn)視頻中的圖片懶加載效果

代碼預(yù)覽
代碼

實(shí)現(xiàn)視頻中的新聞懶加載效果

代碼

test.gif
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 如何判斷一個(gè)元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫(xiě)一個(gè)函數(shù) isVisible實(shí)現(xiàn)...
    _Dot912閱讀 1,691評(píng)論 10 8
  • 1.如何判斷一個(gè)元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫(xiě)一個(gè)函數(shù) isVisible...
    GarenWang閱讀 476評(píng)論 0 2
  • 饑人谷_李棟 定義 圖片懶加載 階段實(shí)現(xiàn) 如何判斷圖片在可視范圍 代碼思路 封裝 懶加載抽離 曝光去重 總結(jié) 一、...
    xingkong_s閱讀 776評(píng)論 5 7
  • 如何判斷一個(gè)元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫(xiě)一個(gè)函數(shù) isVisible實(shí)現(xiàn)...
    饑人谷_全閱讀 323評(píng)論 0 0
  • 題目1:如何判斷一個(gè)元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫(xiě)一個(gè)函數(shù) isVisib...
    阿魯提爾閱讀 345評(píng)論 0 1