題目1:如何判斷一個元素是否出現在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個函數 isVisible實現
function isVisible($node){
return ($node.offset().top<$(window).height()+$(window).scrollTop())&&\
($node.offset().top>$(window).scrollTop())
}
題目2:當窗口滾動時,判斷一個元素是不是出現在窗口可視范圍。每次出現都在控制臺打印 true 。用代碼實現
$(winsow).on('scroll',function(){
if(isVisible($node){
console.log(true)
}
})
題目3:當窗口滾動時,判斷一個元素是不是出現在窗口可視范圍。在元素第一次出現時在控制臺打印 true,以后再次出現不做任何處理。用代碼實現
var isFirst = true
$(window).on('scroll',function(){
if(!isFirst){
return;
}
if(isVisible($('li').eq(8))&&isFirst){
console.log(true)
isFirst = false;
}
})
題目4: 圖片懶加載的原理是什么?
1.什么是懶加載?
在一些圖片,文字,視頻等內容較多的網站上用戶,打開網站會同時加載所有網站內容,用戶網速不好時會造成卡頓,體驗不好。而為了提高用戶體驗,即對網站內容進行懶加載,即當內容出現在瀏覽器窗口時再去加載,這樣,一次加載的內容變少,不會造成瀏覽器的卡頓,提高用戶體驗。
2.實現原理
懶加載的實現原理很簡單,以圖片為例,就是把img標簽的src設置為空或是一張白圖(所有圖片都設置為同一張白圖,瀏覽器會緩存而不會重復加載),而把圖片地址放在其他地方,比如自定義屬性data-src,然后,對圖片進行判斷,當圖片出現在用戶窗口時,通過jquery將data-src中圖片地址賦值給src,瀏覽器就會發出請求,加載圖片。