如何判斷一個(gè)元素是否出現(xiàn)在窗口可視范圍(瀏覽器的上邊緣和下邊緣之間谨垃,肉眼可視)。寫(xiě)一個(gè)函數(shù) isVisible實(shí)現(xiàn)
function isVisible($node){
var winH=$(window).height()
var scrH=$(window).scrollTop()
var offH=$node.offset().top
var nodeH=$node.height()
if(offH<winH+scrH&&scrH<nodeH+offH){
return true
}else{
return false
}
}
當(dāng)窗口滾動(dòng)時(shí),判斷一個(gè)元素是不是出現(xiàn)在窗口可視范圍敦捧。每次出現(xiàn)都在控制臺(tái)打印 true 。用代碼實(shí)現(xiàn)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
p{
margin-top: 1300px;
margin-bottom: 1300px;
}
</style>
</head>
<body>
<div><p>hello</p></div>
<script src="jquery-3.2.1.min.js"></script>
<script>
var winH=$(window).height();
var scrH=$(window).scrollTop();
var offH=$('p').offset().top;
var nodeH=$('p').outerHeight();
$(window).on('scroll',function(){
// console.log($(window).scrollTop())
// console.log(scrH)
if(offH<winH+$(window).scrollTop()&&$(window).scrollTop()<nodeH+offH){
console.log(true)
}else{
console.log(false)
}
})
</script>
</body>
</html>
當(dāng)窗口滾動(dòng)時(shí)碰镜,判斷一個(gè)元素是不是出現(xiàn)在窗口可視范圍兢卵。在元素第一次出現(xiàn)時(shí)在控制臺(tái)打印 true,以后再次出現(xiàn)不做任何處理绪颖。用代碼實(shí)現(xiàn)
<head>
<style>
p{
margin-top: 1000px;
margin-bottom: 1000px;
width: 100px;
height: 20px;
background: green;
}
</style>
</head>
<body>
<p>
hello
</p>
<script src="jquery-3.2.1.min.js"></script>
<script>
var num=0
$(window).on('scroll',function(){
if(checkshow($('p'))){
num++;
if(num===1){
console.log(true)
}
}else{
console.log(false)
}
})
function checkshow(){
var winH=$(window).height();
var scrH=$(window).scrollTop();
var offH=$('p').offset().top;
var nodeH=$('p').outerHeight();
if(offH<winH+$(window).scrollTop()&&$(window).scrollTop()
<nodeH+offH){
return true
}else{
return false
}
}
</script>
</body>
圖片懶加載的原理是什么秽荤?
- 對(duì)于所有img標(biāo)簽,把真實(shí)地址放入自定義屬性中
- 當(dāng)滾動(dòng)頁(yè)面時(shí),檢查所有img標(biāo)簽窃款,看這個(gè)標(biāo)簽是否出現(xiàn)到我們視野中课兄,當(dāng)出現(xiàn)在視野中,再去判斷他是否已經(jīng)加載過(guò)晨继,若沒(méi)加載烟阐,則加載他
懶加載的目的:當(dāng)一個(gè)頁(yè)面有大量圖片和內(nèi)容時(shí),網(wǎng)站為了節(jié)省流量紊扬,可以去做一個(gè)判斷:當(dāng)用戶想看的時(shí)候再加載內(nèi)容給他蜒茄。同時(shí)也加快了用戶打開(kāi)網(wǎng)站的速度,提升用戶體驗(yàn)