懶加載

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

  function isVisible($node){
           var scrollHeight=$(window).scrollTop();//滾動條的高度
           var windowHeight=$(window).height();//瀏覽器窗口的高度
           var offsetHeight=$($node).offset().top;//元素到頁面的頂部的偏移
           if(offsetHeight<scrollHeight+windowHeight&&offsetHeight>scrollHeight){
               return true;
           }else {
               return false;
           }
    }
 

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

  $(window).on('scroll',function($node){
          var scrollHeight=$(window).scrollTop();
          var windowHeight=$(window).height();
          var offsetHeight=$($node).offset().top;//$node是傳入的元素
          if(offsetHeight<scrollHeight+windowHeight&&offsetHeight>scrollHeight) {
              console.log("true");
          }
      })

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

  function isLoad($node){
       $(window).on('scroll',function($node){
           var scrollHeight=$(window).scrollTop();
           var windowHeight=$(window).height();
           var offsetHeight=$($node).offset().top;
           if(offsetHeight<scrollHeight+windowHeight&&offsetHeight>scrollHeight){
               if($($node).attr('src')===$($node).attr('data-src')) {
                   return true;
               }else {
                   $($node).attr('src',$($node).attr('data-src'));
                   console.log('true');
               }
           }
       });
   }

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

如果網(wǎng)頁的圖片過多,全部加載的時候,會很慢,用戶體驗(yàn)不好,為了使網(wǎng)頁加載速度更快,我們就先加載出現(xiàn)在瀏覽器窗口的圖片,不在窗口范圍內(nèi)的圖片,等滾動到的時候再加載,這樣頁面的加載速度會提高很多。
實(shí)現(xiàn)原理是這樣的,把圖片的真實(shí)地址放到圖片的一個自定義屬性上,一般是data-src,圖片的src放的是指向一張空白圖片的地址,當(dāng)頁面加載時判斷圖片位置是否出現(xiàn)在了可視區(qū)域內(nèi)。如果出現(xiàn)在可視區(qū)域了那么就把data-src的真實(shí)地址賦值給src,加載之后的圖片不再做處理。

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

預(yù)覽
代碼

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

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

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