一、为什么写这篇博客?

return)。

    二、页面滚动加载图片的理解:

        我们知道当一个网页含有大量图片的时候,往往加载时间都会很慢,这里不考虑服务器多好,网速多块哈。如淘宝京东等大型电商网站。新闻类就是新浪等了。你可以想象一下,如果一下加载整个网页的所有图片,那会是一个缓慢的过程。在现今我们对知识的渴望性的的增加额,总想最快的浏览网页。所以这个时候我们就需要用到滚动时时加载的方法了!

 三、实现思路:

×)图标。(这里你应该知道说的谁了哈)这样肯定是不行的。

        (1)所以必须是一个对的url地址。我们就用一张一像素的图片作为初始图片。

        (2)在滚动到图片出现在浏览器的可视范围时,在动态替换图片的url地址,这里的动态指的是使用js替换!

        如下:

<img data-url="img/4.png" src="img/pix.png" />
<img data-url="img/4.png" src="img/pix.png" />


$('img ').data('url'); //使用 data()方法获得里面的数据

   解决了这两个问题,那么就简单了,接下来就看怎么实现吧。

    四、需要你知道的?

1、怎样获得浏览器的可视高度?

var windHight = $(window).height(); //获得浏览器的可视高度

    2、怎样获得滚动条相对于顶部的高度?

var scrollHight = $(window).scrollTop();//获得滚动条相对于顶部的高度

  3、怎样获得每张图片相对于浏览器顶部的高度?

var imgHight =  $('img').offset().top; //获得每张图片相对于顶部的高度

 

imgHight - windHight < scrollHight  ? '成立的话就代表出现了' : '不成立就代表没出现';

    5、怎样排除首屏的图片?

imgHight - windHight > 0 //排除首屏的图片

    6、排除已经加载过的图片

$(this).attr('src') != $(this).data('url') //排除已经加载过的图片

    好了这样基本实现了!

    五、效果分析:

jquery 动态加载video src jquery动态加载图片_ViewUI

    看出结果了吧!实现了滚动加载的效果而且不会出现重复加载的情况!下面看浏览器的请求:

    


    看到这里也就基本完结了!最后贴出自己的代码这个代码看起我觉得很好理解,但是可能在性能上会有不足,还请你来提出意见!先谢谢了。

温柔点击这里:在线演示滚动加载图片

    看代码:

$(function(){
    var $wd = $(window),
        $img = $('img'),
        imgTop,          //图片距离顶部高度
        scTop,             //滚动条高度
        wH;           //窗口高度
    wH = $wd.height();         //获得可视浏览器的高度
    $wd.scroll( function() {
        scTop = $wd.scrollTop();       //获取滚动条到顶部的垂直高度
        $img.each(function(){
            imgTop =  $(this).offset().top;
            if(imgTop - wH < scTop &&     //图片必须出现在窗口底部上面
                imgTop - wH > 0 &&        //排除首页图片
                $(this).attr('src') != $(this).data('url')){          //排除已经加载过的图片
                   $(this).attr({
                       src: $(this).data('url')
                   });
            }
        });
    });
});


    思考:

两种解决方法:

    一、所有的图片初始都使用一像素的图片,用 load 事件遍历图片再显示。(缺点效率低)

    二、按照最大的显示视频计算初始高度,及最开始在首页中多写入几张进去。(相对好点)

    

    (本篇完)