題目1:如何判斷一個元素是否出現在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間,肉眼可視)。寫一個函數 isVisible實現
function isVisible($node){
var offsetTop = $node.offset().top
var windowHeight = $(window).height()
var scrollTop = $(window).scrollTop()
return (offsetTop > scrollTop) && (offsetTop < windowHeight + scrollTop)
}
題目2:當窗口滾動時,判斷一個元素是不是出現在窗口可視范圍。每次出現都在控制臺打印 true 。用代碼實現
function isVisible($node){
var offsetTop = $node.offset().top
var windowHeight = $(window).height()
var scrollTop = $(window).scrollTop()
return (offsetTop > scrollTop) && (offsetTop < windowHeight + scrollTop)
}
$(window).on('scroll', function(){
if (isVisible($node)){
console.log('true')
}
})
題目3:當窗口滾動時,判斷一個元素是不是出現在窗口可視范圍。在元素第一次出現時在控制臺打印 true,以后再次出現不做任何處理。用代碼實現
function isVisible($node){
var offsetTop = $node.offset().top
var windowHeight = $(window).height()
var scrollTop = $(window).scrollTop()
return (offsetTop > scrollTop) && (offsetTop < windowHeight + scrollTop)
}
$(window).on('scroll', function(){
if (isVisible($node)){
if($node.attr('emerged')){
return
}
console.log('true')
$node.attr('emerged', 'true')
}
})
題目4: 圖片懶加載的原理是什么?
圖片較多時?,把一部分圖片的地址屬性隱藏在其他自定義的屬性中,當這部分圖片出現在瀏覽器窗口中或觸發了某個事件時,再將圖片地址還原,以達到按需加載的目的,提高用戶體驗。
也可以使用?ajax向后端請求數據,再?通過操作顯示圖片。?其原理是一致的。