jQuery实现图片和iframe等延迟加载

对于电子商务进入优化阶段,由于过多的图片加载,给网站带来过度的负载,影响了访问速度。接下来我将介绍一个基于jQuery的插件来处理这些问题,

这个插件就是jquery.scrollLoading.js。


一下是插件源码:

/*
 * jquery.scrollLoading.js
 * 2010-11-19 v1.0
*/
(function ($) {
    $.fn.scrollLoading = function (options) {
        var defaults = {
            attr: "data-url"
        };
        var params = $.extend({}, defaults, options || {});
        params.cache = [];
        $(this).each(function () {
            var node = this.nodeName.toLowerCase(), url = $(this).attr(params["attr"]);
            if (!url) { return; }
            //重组
            var data = {
                obj: $(this),
                tag: node,
                url: url
            };
            params.cache.push(data);
        });

        //动态显示数据
        var loading = function () {
            var st = $(window).scrollTop(), sth = st + $(window).height();
            $.each(params.cache, function (i, data) {
                var o = data.obj, tag = data.tag, url = data.url;
                if (o) {
                    post = o.position().top;
                    if (post < 10)
                        post = o.offset().top;
                    posb = post + o.height();

                    if ((post > st && post < sth) || (posb > st && posb < sth)) {
                        //在浏览器窗口内

                        if (tag === "img") {
                            //图片,改变src
                            o.attr("src", url);
                        } else if (tag == "iframe") {
                            o.attr("src", url);
                        } else if (tag == "span") {                          
                            eval(url);
                        }
                        else {
                            o.load(url);
                        }
                        data.obj = null;
                    }
                }
            });
            return false;
        };

        //事件触发
        //加载完毕即执行
        loading();
        //滚动执行
        $(window).bind("scroll", loading);
    };
})(jQuery);
引用方法:
$(function(){ $('img').scrollLoading(); });

注意html文件:
<img data-url="http://xxx.com/898.jpg.167_167.jpg"  style="backgound:url(http://www.mb5u.com/uploads/sucai/2008825893756277801.gif) no-repeat center;" align="absmiddle"  width="167" height="167"/>  


 属性data-url 必须有而且url为图片实际地址 
 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值