Andy Zhao's Blog

  • 首页
  • web开发
  • 互联网
  • 技术分享
  • 网站运营
  • 交互设计
  • 资源分享
    • 工具
    • 欣赏
    • 素材
  • 生活杂语
Welcome
记录一些点点滴滴
  1. 首页
  2. web开发
  3. javascript
  4. 正文

怎么判断页面中的图片已加载完?

2017/07/11 2302点热度 0人点赞 0条评论

怎么判断页面中的图片已经加载完成?下面直接进入主题:

(1)、单张图片(图片在文档中)

// HTML
<img id='xiu' src="http://www.daqianduan.com/wp-content/uploads/2014/11/hs-xiu.jpg">  

//js
 $(document).ready(function(){

    //jquery
    $('#xiu').load(function(){
       // 加载完成 
    });

   //原生  onload
    var xiu = document.getElementById('xiu')
    xiu.onload = xiu.onreadystatechange = function(){
       if(!this.readyState||this.readyState=='loaded'||this.readyState=='complete'){
           // 加载完成 
       }
    };

})

注:


1、IE8及以下版本不支持onload事件,但支持onreadystatechange事件;


2、readyState是onreadystatechange事件的一个状态,值为loaded或complete的时候,表示已经加载完毕。


3、以下内容省略兼容

(2)、单张图片(图片动态生成)

//js
 var xiu = new Image()
 xiu.src = 'http://www.daqianduan.com/wp-content/uploads/2014/11/hs-xiu.jpg'
 xiu.onload = function(){
    // 加载完成 
 }

(3)、单张图片(结合ES6 Promise)

//js
 new Promise((resolve, reject)=>{
    let xiu = new Image()
    xiu.src = 'http://www.daqianduan.com/wp-content/uploads/2014/11/hs-xiu.jpg'
    xiu.onload = function(){
       // 加载完成 
       resolve(xiu)
    }
 }).then((xiu)=>{
 //code
 })

(4)、多张图片

var img = [],  
    flag = 0, 
    mulitImg = [
    'http://www.daqianduan.com/wp-content/uploads/2017/03/IMG_0119.jpg',
    'http://www.daqianduan.com/wp-content/uploads/2017/01/1.jpg',
    'http://www.daqianduan.com/wp-content/uploads/2015/11/jquery.jpg',
    'http://www.daqianduan.com/wp-content/uploads/2015/10/maid.jpg'
 ];
 var imgTotal = mulitImg.length;
 for(var i = 0 ; i < imgTotal ; i++){
    img[i] = new Image()
    img[i].src = mulitImg[i]
    img[i].onload = function(){
       //第i张图片加载完成
       flag++
       if( flag == imgTotal ){
          //全部加载完成
       }
    }
 }

(5)、多张图片(结合ES6 Promise.all())

  let mulitImg = [
     'http://www.daqianduan.com/wp-content/uploads/2017/03/IMG_0119.jpg',
     'http://www.daqianduan.com/wp-content/uploads/2017/01/1.jpg',
     'http://www.daqianduan.com/wp-content/uploads/2015/11/jquery.jpg',
     'http://www.daqianduan.com/wp-content/uploads/2015/10/maid.jpg'
 ];
 let promiseAll = [], img = [], imgTotal = mulitImg.length;
 for(let i = 0 ; i < imgTotal ; i++){
     promiseAll[i] = new Promise((resolve, reject)=>{
         img[i] = new Image()
         img[i].src = mulitImg[i]
         img[i].onload = function(){
              //第i张加载完成
              resolve(img[i])
         }
     })
 }
 Promise.all(promiseAll).then((img)=>{
     //全部加载完成
 })
标签: 暂无
最后更新:2017/07/11

zhaoan

一个不起眼的IT工作者,从事过的行业较多,医疗保健、医院、月子会所、机电、重卡、软件,涉及的岗位也较多,零售、市场、平面设计、网站设计、UI设计、前端开发、后端开发、网络布线、设备维护、服务器维护、网络推广、网站运营、新媒体运营、部门管理等等,每个岗位工作基本都能独立完成,但是涉及面广导致都不精通,学习还在继续中。。。

点赞
< 上一篇

文章评论

取消回复

搜索
分类
  • asp / 2篇
  • css / 27篇
  • html / 9篇
  • javascript / 15篇
  • php / 6篇
  • web开发 / 8篇
  • wordpress / 7篇
  • 互联网 / 16篇
  • 交互设计 / 30篇
  • 其他 / 3篇
  • 工具 / 3篇
  • 欣赏 / 11篇
  • 生活杂语 / 6篇
  • 用户体验 / 1篇
  • 素材 / 3篇
  • 网站建设 / 3篇
  • 网站推广 / 4篇
  • 网站运营 / 5篇
  • 网络技术 / 1篇
最新 热点 随机
最新 热点 随机
宝塔的FTP存储空间,API资料校验失败,请核实! 移动端APP下拉刷新与轮播图冲突的解决方法 头条号怎么运营?怎么涨粉? 转载:移动前端开发之viewport的深入理解 判断来访是搜索引擎蜘蛛还是普通用户,蜘蛛正常抓取,用户跳转指定页面 为什么我们需要构图?构图有哪些原则?
简化输入—让网页表单更亲切 PHP获取当前域名$_SERVER['HTTP_HOST']和$_SERVER['SERVER_NAME']的区别 怎么判断页面中的图片已加载完? 为什么要做301重定向 一个质感按钮PS教程 iframe自适应高度

COPYRIGHT © 2022 zhaoan.org. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

陕ICP备09022954号