懒加载

作者: 饥人谷_林嘉俊 | 来源:发表于2017-09-27 15:10 被阅读12次

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

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

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

    $(window).on('scroll',function(){
            lazingLoad();
     })
    function lazingLoad(){
        $img.each(function(){
        if( isVisible($(this))){
            console.log(true);
        }})
    }
    function isVisible($img){
        var $imgheight = $img.offset().top;
        var height =  $(window).height();
        var scrollHeight = $(window).scrollTop();
        if($imgheight < height  + scrollHeight && $imgheight > scrollHeight){
               return true;
        }
        return false;
    }
    

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

    var occur;
    $(window).on('scroll',function(){
        lazingLoad();
     })
    function lazingLoad(){  
              $img.each(function(){
                if($(this).attr('occur') == '1'){
                  return;
                }
                if(isVisible($(this))){
                    console.log(true);
                    $(this).attr('occur','1');
                })
          }
    function isVisible($img){
          var $imgheight = $img.offset().top;
          var height =  $(window).height();
          var scrollHeight = $(window).scrollTop();
          if($imgheight < height  + scrollHeight && $imgheight > scrollHeight){
                   return true;
            }
            return false;
          }
    

    题目4: 图片懒加载的原理是什么?
    懒加载是一种思路,目的是是优化性能,在用户需要的时候显示信息。
    核心逻辑:

    • 判断元素是否在用户眼中
    • 判断元素是否加载过
    • 加载

    判断元素是否在肉眼位置的逻辑

    1.元素的高度(top)是否大于 屏幕垂直滚动的距离

    2.元素的高度(top)是否小于 屏幕垂直滚动的距离加上屏幕文档的高度

    判断图片是否加载过

    可以自定义一个属性,加载过改为true,没加载改为fasle

    注:
    数据懒加载
    是在网页屏幕底下埋下一下看不到的节点,然后判断节点是否在用户眼中,出现的话发送AJAX请求,加载数据拼装HTML到文档,这样就实现了数据不间断的情况,除非AJAX请求返回没有数据了。
    题目5: 实现视频中的图片懒加载效果
    https://jsxiaocainiao.github.io/demos/lazingloading/pic.html

    相关文章

      网友评论

          本文标题:懒加载

          本文链接:https://www.haomeiwen.com/subject/lzgyextx.html