jquery图片加载完成判断

   今天想项目中遇到一个问题,就是当一张图片已经呈现在网页上,但是我用height()方法获取高度的确是0,这就是所谓的图片没有加载完成,众所周知,图片一般放在服务器上,通过http下载到客户端,而图片下载到本地是需要一定时间的(网速快的路过)。当图片还没有下载完的时候,使用js获取到元素的宽高将会是0。

   有的人会说我使用jquery的ready不就好了。如下

$(document).ready(function(){
  // 在这里写你的代码...
});

   但是你仔细推敲下,这是错误的,得先弄懂ready与window.onload的区别。

   jquery的ready只是dom的结构加载完毕,便视为加载完成。(缺点是图片没有加载完毕,宽高为0,程序出错)

   js的window.onload是指dom的生成和资源的加载,比如flash、图片完全加载出来后才执行onload。(缺点就是当某一张图片很大的时候,岂不阻止了其它js的正常执行)

   方法一:load方法 (监听 img 的 load 方法,每 load 一张图片比较一次)

var num = $img.length;
 
$imgs.load(function() {
  num--;
  if (num > 0) {
    return;
  }
  console.log('load compeleted');
}

 方法二:使用 jQuery 中的 Deferred 对象

     http://www.jb51.net/article/70832.htm

 偷个懒,明天再写啊,现在碎觉

转载于:https://www.cnblogs.com/cutemantou/p/8677512.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值