題目1:如何判斷一個(gè)元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫(xiě)一個(gè)函數(shù) isVisible實(shí)現(xiàn)
function isVisible($node){
if ($node.offset().top < $(window).height()+$(window).scrollTop() && $(window).scrollTop() < $node.offset().top+$node.height()) {
console.log(true)
}
}
題目2:當(dāng)窗口滾動(dòng)時(shí),判斷一個(gè)元素是不是出現(xiàn)在窗口可視范圍召锈。每次出現(xiàn)都在控制臺(tái)打印 true 。用代碼實(shí)現(xiàn)
var $div = $('div')
$(window).on('scroll', function(e) {
isVisible($div)
})
function isVisible($node){
if ($node.offset().top < $(window).height()+$(window).scrollTop() && $(window).scrollTop() < $node.offset().top+$node.height()) {
console.log(true)
}
}
題目3:當(dāng)窗口滾動(dòng)時(shí)获询,判斷一個(gè)元素是不是出現(xiàn)在窗口可視范圍涨岁。在元素第一次出現(xiàn)時(shí)在控制臺(tái)打印 true,以后再次出現(xiàn)不做任何處理吉嚣。用代碼實(shí)現(xiàn)
var $div = $('div')
$(window).on('scroll', function(e) {
if(isVisible($div) && !$div.hasClass('showed')) {
$div.addClass('showed')
console.log(true)
}
})
function isVisible($node){
if ($node.offset().top < $(window).height()+$(window).scrollTop() && $(window).scrollTop() < $node.offset().top+$node.height()) {
return true
}
}
題目4: 圖片懶加載的原理是什么梢薪?
對(duì)于圖片過(guò)多的頁(yè)面,為了防止請(qǐng)求阻塞尝哆,加速頁(yè)面加載速度沮尿,所以很多時(shí)候我們需要將頁(yè)面內(nèi)未出現(xiàn)在可視區(qū)域內(nèi)的圖片先不做加載, 等到滾動(dòng)到可視區(qū)域后较解,再去位圖片設(shè)置src
屬性進(jìn)行加載。
這樣子對(duì)于頁(yè)面加載性能上會(huì)有很大的提升赴邻,也提高了用戶體驗(yàn)印衔。