題目1:如何判斷一個(gè)元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間璧南,肉眼可視)耗拓。寫一個(gè)函數(shù) isVisible實(shí)現(xiàn)
function isVisable($node){
var scrollTop = $(window).scrollTop();
var windowHeight = $(window).height();
var offsetTop = $node.offset().top;
if (offsetTop < scrollTop + windowHeight && offsetTop > scrollTop) {
return true
}
return false
}
題目2:當(dāng)窗口滾動(dòng)時(shí)突勇,判斷一個(gè)元素是不是出現(xiàn)在窗口可視范圍悯嗓。每次出現(xiàn)都在控制臺(tái)打印 true 摸柄。用代碼實(shí)現(xiàn)
$(window).on("scroll", function(){
if(isVisable($node)){
console.log(true)
};
})
題目3:當(dāng)窗口滾動(dòng)時(shí)沥寥,判斷一個(gè)元素是不是出現(xiàn)在窗口可視范圍正蛙。在元素第一次出現(xiàn)時(shí)在控制臺(tái)打印 true,以后再次出現(xiàn)不做任何處理营曼。用代碼實(shí)現(xiàn)
$(window).on("scroll", function(){
if(isVisable($node) && !isLoaded($node)){
console.log(true)
};
})
function isLoaded($node){
return $node.attr("src") === $node.attr("data-src")
}
題目4: 圖片懶加載的原理是什么乒验?
圖片懶加載是將頁(yè)面上的圖片分批加載,只有當(dāng)圖片出現(xiàn)在window窗口中(用戶可見)的時(shí)候蒂阱,才加載圖片锻全;而正常情況下,img元素是自動(dòng)加載的录煤,所以可以自定義一個(gè)圖片地址屬性鳄厌,當(dāng)需要加載圖片的時(shí)候,將該自定義屬性值賦給src屬性妈踊,以實(shí)現(xiàn)優(yōu)化頁(yè)面的渲染速度了嚎。