<pre>`
<script>
judge()
var clock; //首先买个闹钟
$(window).on('scroll',function(){ //滚的时候处罚
if (clock) { //如果有闹钟————炸了
clearTimeout(clock)
}
clock = setTimeout(function(){ //买一个,定时半秒后爆炸
console.log(1) //打印1(多余测试)
judge() //执行函数
},500)
})
function judge() {
$('.container img').each(function(){
if ( isShow($(this)) && !isLoad($(this)) ) { // 1.是否显示在视窗 2.是否已加载
toLoad($(this)) // 3.加载它.
}
})
function isShow($img) {
var scrollTop = $(window).scrollTop() //滚动条高度~
var windowHeight = $(window).height() //窗口高度(浏览器)
var offsetTop = $img.offset().top //目标偏移高度
return ( offsetTop < scrollTop + windowHeight && offsetTop > scrollTop)
} //目标偏移高度大于滚动条高度..原因(有隐藏的BODY上部分)
//目标偏移高度小于滚动条高度 + 窗口高度 .这种情况意味出现在视野里
function isLoad($img) {
return ( $img.attr('src') === $img.attr('data-src') )// 是否已经加载~
}
function toLoad($img) {
$img.attr('src',$img.attr('data-src')) // 加载
}
}
</script>
`</pre>
网友评论