当前位置:文章中心 >> Css3.0_css2.0_html5
|
使用JQuery 的 Deferred实现图片预加载
|
夜鹰教程网 来源:www.yyjcw.com 日期:2017-11-11 14:17:04
|
使用JQuery 的 Deferred实现图片预加载
|

这篇文章不能解决你的问题?我们还有相关视频教程云课堂 全套前端开发工程师培训课程 微信号:yyjcw10000 QQ:1416759661 远程协助需要加QQ! 业务范围:视频教程|程序开发|在线解答|Demo制作|远程调试| 点击查看相关的视频教程。 技术范围:全端开发/前端开发/webapp/web服务/接口开发/单片机/C#/java/node/sql server/mysql/mongodb/android/。
|
//图片预加载的解决方法 使用JQuery 的 Deferred实现 function preloadImg(list,imgs) { var def = $.Deferred(), len = list.length; $(list).each(function(i,e) {//遍历存储图片url的数组 var img = new Image(); img.src = e; if(img.complete) {//如果图片在缓存中 imgs[i] = img; len--; if(len == 0) { def.resolve(); } } else {//如果图片没有在缓存中 等待加载完成 img.onload = (function(j) { //使用了闭包 return function() { imgs[j] = img len--; if(len == 0) { def.resolve(); } }; })(i); img.onerror = function() { len--; console.log('fail to load image'); }; } }); return def.promise();//返回一个Promise对象 因为在$.when()中的参数必须是Promise对象 } var list = [......], imgs = []; $.when(preloadImg(list, imgs)).done( function() { //预加载结束 //do something here } );
|
|
热门服务/教程目录
|
客服电话:153 9760 0032
购买教程QQ:1416759661
|
|
|