題目1:
如何判斷一個元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)促脉。寫一個函數(shù) isVisible實現(xiàn)
function isVisible($node){
var scrollTop=$(window).scrollTop()
var $bHeight=$(window).height()+scrollTop
var offsetTop=$node.offset().top
var $sHeight=offsetTop+$node.outerHeight()
if (offsetTop<$bHeight&&$sHeight>scrollTop){
$node.addClass("load")
return true
}else{
return false
}
}
題目2:
當(dāng)窗口滾動時引镊,判斷一個元素是不是出現(xiàn)在窗口可視范圍。每次出現(xiàn)都在控制臺打印 true 涂圆。用代碼實現(xiàn)
題目3:
當(dāng)窗口滾動時泼返,判斷一個元素是不是出現(xiàn)在窗口可視范圍。在元素第一次出現(xiàn)時在控制臺打印 true姨拥,以后再次出現(xiàn)不做任何處理绅喉。用代碼實現(xiàn)
代碼和效果
題目4:
圖片懶加載的原理是什么?
臨界條件:
1叫乌,圖片頂部剛好到達(dá)可是區(qū)窗口的底部
2柴罐,圖片頂部剛好要出窗口頂部,和圖片底部(包括margin值)剛好到達(dá)可是區(qū)窗口的頂部
//元素頂部到達(dá)文檔頂部的距離
var offsetTop=$node.offset().top
//滿足下面條件憨奸,表示元素在可視區(qū)窗口里面
offsetTop<$(window).height()+scrollTop&&offsetTop+$node.outerHeight()>$(window).scrollTop()