懶加載

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

 function isVisible($node){
    var windowHeight = $(window).height(),   //窗口的高度
        scrollTop = $(window).scrollTop(),     //滾動距離頂點的距離
        offsetTop = $node.offset().top,     //傳遞的參數(shù)距離頂點的距離
        nodeHeight = $node.height();    //節(jié)點的自身高度

    if(windowHeight + scrollTop > offsetTop && scrollTop < offsetTop + nodeHeight){   
        return true;
    }else{
        return false;
    }
 }

當窗口滾動時,判斷一個元素是不是出現(xiàn)在窗口可視范圍。每次出現(xiàn)都在控制臺打印 true 。用代碼實現(xiàn)

<p id="hello">hello</p>

 $(window).on('scroll',function(){
     if(isVisible($('#hello'))){
         console.log(true)
     }                    
 })

 function isVisible($node){
    var windowHeight = $(window).height(),   //窗口的高度
        scrollTop = $(window).scrollTop(),     //滾動距離頂點的距離
        offsetTop = $node.offset().top,     //傳遞的參數(shù)距離頂點的距離
        nodeHeight = $node.height();    //節(jié)點的自身高度

    if(windowHeight + scrollTop > offsetTop && scrollTop < offsetTop + nodeHeight){   
        return true;
    }else{
        return false;
    }
 }

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

<p id="hello">hello</p>

$(window).on('scroll',function(){
    if(isVisible($('#hello')) && !$('#hello').hasClass('show')){  
        $('#hello').addClass('show')   //當出現(xiàn)過一次后加個標簽
        console.log(true)
    }                 
})

 function isVisible($node){
    var windowHeight = $(window).height(),   //窗口的高度
        scrollTop = $(window).scrollTop(),     //滾動距離頂點的距離
        offsetTop = $node.offset().top,     //傳遞的參數(shù)距離頂點的距離
        nodeHeight = $node.height();    //節(jié)點的自身高度

    if(windowHeight + scrollTop > offsetTop && scrollTop < offsetTop + nodeHeight){   
        return true;
    }else{
        return false;
    }
 }

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

對于圖片過多的頁面,為了加速頁面加載速度,所以很多時候我們需要將頁面內(nèi)未出現(xiàn)在可視區(qū)域內(nèi)的圖片先不做加載, 等到滾動到可視區(qū)域后再去加載。這樣子對于頁面加載性能上會有很大的提升,也提高了用戶體驗。

實現(xiàn)原理:

  • 當窗口滾動時
  • 判斷圖片是否出現(xiàn)在可視區(qū)域
  • 若出現(xiàn)了就展示圖片,并把展示的圖片加上標記以防之后重復判斷

代碼題

圖片懶加載效果
新聞懶加載效果

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 如何判斷一個元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個函數(shù) isVisible實現(xiàn)...
    _Dot912閱讀 1,778評論 10 8
  • 1、懶加載 1.什么是懶加載? 懶加載也就是延遲加載。當訪問一個頁面的時候,先把img元素或是其他元素的背景圖片路...
    xiaolizhenzhen閱讀 70,629評論 18 160
  • 1、懶加載1.什么是懶加載?懶加載也就是延遲加載。當訪問一個頁面的時候,先把img元素或是其他元素的背景圖片路徑替...
    Gaochengxin閱讀 407評論 1 2
  • 1.如何判斷一個元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個函數(shù) isVisible...
    GarenWang閱讀 571評論 0 2
  • 轉(zhuǎn)載地址:https://segmentfault.com/a/1190000010744417懶加載什么是懶加載...
    秀逼閱讀 569評論 0 0

友情鏈接更多精彩內(nèi)容