懒加载

2017-07-12  本文已影响0人  无目的

题目1:如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible实现

function isVisible($node){
var scrollTop=$(window).scrollTop();
var windowHeight=$(window).height();
var offsetTop=$node.offset().top;
if(offsetTop<scrollTop+windowHeight && offsetTop>scrollTop){
    return true;
}
    return false;
 }

题目2:当窗口滚动时,判断一个元素是不是出现在窗口可视范围。每次出现都在控制台打印 true 。用代码实现

//css部分
<style type="text/css">

    *{
        margin:0 0;
        padding: 0 0;
    }
     .div1{
        width:1000px;
        height:800px;
        border:1px solid;
        margin:800px auto;
   
    }
  
</style>

//html部分
<div class='div1'></div>

//jQuery部分
<script src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.js"></script>

<script type="text/javascript">
$(window).on('scroll',function (){
    if(isVisible($('.div1'))){
        console.log(true)
    }else{
        console.log(false)
    }
})
function isVisible($node){
var scrollTop=$(window).scrollTop()
var windowHeight=$(window).height()
var offsetTop=$node.offset().top
if(offsetTop<scrollTop+windowHeight && offsetTop>scrollTop){
    return true
}
    return false
}
</script>

题目3:当窗口滚动时,判断一个元素是不是出现在窗口可视范围。在元素第一次出现时在控制台打印 true,以后再次出现不做任何处理。用代码实现

function result(){
    if($('.div1').not('.show').length === 1 && isVisible($('.div1'))){

        console.log(true);

        $('.div1').addClass('show');
        }
        else if(!isVisible($('.div1'))){
                console.log(false);
        }
        }

    $(window).on('scroll',result);
}
function isVisible($node){

    var scrollTop=$(window).scrollTop()
    var windowHeight=$(window).height()
    var offsetTop=$node.offset().top
    if(offsetTop<scrollTop+windowHeight && offsetTop>scrollTop){

        return true
    }
        return false
}

题目4: 图片懒加载的原理是什么?
不在一开始就加载所有图片,而是判断图片是否展示了,展示时才加载图片

题目5: 实现视频中的图片懒加载效果
代码地址

****题目6(选做):** 实现新闻懒加载
代码地址

上一篇 下一篇

猜你喜欢

热点阅读