分享一个延迟加载图片的JS
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script src="http://cdn.bootcss.com/jquery/1.11.2/jquery.min.js" type="text/javascript"></script> <script src="yanchi.js"></script> <script> $(function () { var yanchi = new YanChi(); yanchi.init("img", 0); yanchi.range = 100; yanchi.callback(function (img, imgs) { img = $(img); if (img.data("src")) { img.attr("src", img.data("src")); } }); }) </script> </head> <body> <p style="height:800px"></p><img src="" data-src="http://static.cnblogs.com/images/adminlogo.gif" /><p style="height:400px"></p> </html>
1、初始化
最少提供一个参数
yanchi.init("img", 0); //img,提前0PX加载
yanchi.init("img", 100,"data-url");//所有图片,提前100 px加载,图片地址在data-url这个属性上
也可以这们初始化:
var yanchi = new YanChi();
yanchi.init("img");
yanchi.range=300;
yanchi.attrName="data-url";
只要设置了attrName属性,这样就可以用了
//////////////////////////////
如果你的图片地址在背景,或要设置图片CSS样式,上面的方法显然不行了,那样就无法满足你的要求了。
那么,就要自定义回调函数
拓展:定义回调
定义,滚动条到达的时候的事件
var yanchi = new YanChi(); yanchi.init("img"); yanchi.range=300; yanchi.callback(function (img, imgs) { if (img.data("background")) { img.css("background", img.data("background")); } })
callback 这个函数注入了img,imgs两个变量。img是当前的图片
////////////////////////////////
随便写写的
如果lazyload无法满足你的需求,欢迎使用这个。兼容lazyload。
欢迎朋友们提出更好的建议~
下载https://files.cnblogs.com/files/hhkedang/yanchi.js