懒加载

何为懒加载?第一次看见这个词我是

从字面意义上完全不能理解加载为何还有个“懒”字。其实懒加载是用以优化网页加载图片等较大文件的一种方法,其中心思想为:用户看不到,网页就先不加载,当用户需要看到的时候,再加载给用户。这样最大的好处,就是避免了图片集中加载,造成网页crash。像轮播,长页面的图片加载多使用懒加载这种方式。

那具体该怎么做呢?

  • 在原本该出现图片的地方,造一个展窗(自定义宽高的div),或是让网页同时先填满一个原图一般大的空白图片。
  • 将图片真实的地址藏在一个自定义属性中,当判断用户已经需要看图片时,将该地址赋给<img>[src]属性或是CSS的background-image:url()中;

所以思路就很清晰了:造盒子——》写判断函数——》狸猫换太子。

判断函数:判断一个元素是否出现在窗口可视范围
function isVisible($node) {
            var scrollTop = $(window).scrollTop();
            var winH = $(window).height();
            var nodeTop = $node.offset().top;
            var nodeButtom = nodeTop + $node.height();
            return  nodeTop < scrollTop + winH && nodeButtom > scrollTop;
        }

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

function inVisible($node) {
            var srollTop = $(window).scrollTop();
            var winH = $(window).height();
            var nodeTop = $node.offset().top;
            var nodeButtom = nodeTop + $node.height();
            return  nodeTop < srollTop + winH && nodeButtom > screenTop;
        }
$(window).on("scroll",function () {
    if(inVisible($(".object"))){
        console.log(true);
    }
});

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

var $object = $(".object")
        function inVisible($node) {
            var srollTop = $(window).scrollTop();
            var winH = $(window).height();
            var nodeTop = $node.offset().top;
            var nodeButtom = nodeTop + $node.height();
            return  nodeTop < srollTop + winH && nodeButtom > screenTop;
        }
$(window).on("scroll",function () {
    if($object.attr("isShow")) return;
    if(inVisible($object)){
        $object.attr("isShow",true);
        console.log(true);
    }
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible实现...
    _Dot912阅读 5,608评论 10 8
  • 1.如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible...
    GarenWang阅读 3,430评论 0 2
  • 懒加载 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisib...
    marmot_ning阅读 1,813评论 0 0
  • 题目1:如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisib...
    普莱那阅读 4,117评论 2 0
  • 作为一个大一的新生,在踏入学校的那刻已经对“朋友”这词有了新的想法…… 很多人说,人生中最好的朋友,或者是关系最纯...
    桃之丫丫阅读 1,794评论 0 2