懶加載

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

實現

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

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

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

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

var $box = $('#box')

function isLoaded($node){
  return ($node.data('flag')===1)
}

$(window).on('scroll',function(){
 if( isVisible($box) && !isLoaded($box) ){
   $box.data('flag',1)
   console.log('true')
 }
})

題目4: 圖片懶加載的原理是什么?

將img標簽中的src鏈接設為同一張圖片占位(只需請求一次),將其真正的圖片地址存儲在img標簽的自定義屬性中(比如data-src)。

  • 條件加載:符合某些條件,或觸發(fā)了某些事件,才將自定義屬性中的地址存儲到src屬性中,開始加載圖片
  • 可視區(qū)加載:僅加載用戶可以看到的區(qū)域。當js監(jiān)聽到該圖片元素進入可視窗口時,將自定義屬性中的地址存儲到src屬性中,開始加載圖片

這樣做能防止頁面一次性向服務器響應大量請求導致服務器響應慢,頁面卡頓或崩潰等問題。

題目5: 實現視頻中的圖片懶加載效果

效果

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

相關閱讀更多精彩內容

  • 題目1:如何判斷一個元素是否出現在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個函數 isVisib...
    yuhuan121閱讀 410評論 0 0
  • 題目1:如何判斷一個元素是否出現在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個函數 isVisib...
    湖衣閱讀 256評論 0 0
  • 如何判斷一個元素是否出現在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個函數 isVisible實現...
    _Dot912閱讀 1,780評論 10 8
  • 題目1:如何判斷一個元素是否出現在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個函數 isVisib...
    QQQQQCY閱讀 173評論 0 0
  • 上一節(jié)我們學習了springMVCforward方式的服務端轉發(fā),今天小博老師再跟大家介紹一下重定向方式的頁面跳轉...
    博為峰51Code教研組閱讀 596評論 0 0

友情鏈接更多精彩內容