大佬教程收集整理的这篇文章主要介绍了如何使用jquery判断图片或者背景图片加载完毕,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
外贸建站网站开发制作中有需要需要等到@L_450_1@中的图片加载完毕后才执行某些事件,而使用jquery的load事件只是dom执行完毕,图片未必加载完成,如果要判断图片加载完毕,需要在图片标签上判断。
使用JavaScript判断图片加载完毕,如果图片在@L_450_1@中的某个img标签中的话,可以用下面这个
$(‘img‘).on(‘load‘,function() { alert(‘new image loaded: ‘ + this.src); });
原生js
imgNode.onload = () => { alert(‘new image loaded: ‘ + this.src); };
// HTML
<img id=‘pic‘ src="https://www.chinaobd2.com/upload/pro/sbb3-pro3-key-progrAMMer-1.jpg"> //js $(document).ready(function(){ //jquery $(‘#pic‘).load(function(){ // 加载完成 }); //原生 onload var pic = document.getElementById(‘pic‘) pic.onload = pic.onreadystatechange = function(){ if(!this.readyState||this.readyState==‘loaded‘||this.readyState==‘complete‘){ // 加载完成 } }; })
注:
1、IE8及以下版本不支持onload事件,但支持onreadystatechange事件;
2、readyState是onreadystatechange事件的一个状态,值为loaded或complete的时候,表示已经加载完毕。
3、如果引入jquery库可以考虑直接使用jquery的load事件来解决兼容问题。·
//js var pic = new Image() pic.src = ‘https://www.chinaobd2.com/upload/pro/sbb3-pro3-key-progrAMMer-1.jpg‘ pic.onload = pic.onreadystatechange = function(){ if(!this.readyState||this.readyState==‘loaded‘||this.readyState==‘complete‘){ // 加载完成 } }; //jquery $(‘<img/>‘).attr(‘src‘,‘https://www.chinaobd2.com/upload/pro/sbb3-pro3-key-progrAMMer-1.jpg‘).on(‘load‘,function() { $(this).remove(); // 防止内存泄露 //图片加载完毕 });
(3)、单张图片(结合ES6 Promise)
//js
new Promise((resolve, reject)=>{ let pic = new Image() pic.src = ‘https://www.chinaobd2.com/upload/pro/sbb3-pro3-key-progrAMMer-1.jpg‘ pic.onload = function(){ // 加载完成 resolve(pic) } }).then((pic)=>{ //code })
(4)、多张图片
var img = [],flag = 0,mulitImg = [ ‘https://www.chinaobd2.com/upload/pro/sbb3-pro3-key-progrAMMer-1.jpg‘,‘https://www.chinaobd2.com/upload/pro/sbb3-pro3-key-progrAMMer-2.jpg‘,‘https://www.chinaobd2.com/upload/pro/sbb3-pro3-key-progrAMMer-3.jpg‘ ]; var img@R_810_10586@l = mulitImg.length; for(var i = 0 ; i < img@R_810_10586@l ; i++){ img[i] = new Image() img[i].src = mulitImg[i] var pic = img[i]; //用jquery $(piC).on(‘load‘,function(){ $(this).remove(); flag++ if(flag==img@R_810_10586@l){ //全部加载完成 } }) //原生js // img[i].onload = img[i].onreadystatechange = function(){ // if(!this.readyState||this.readyState==‘loaded‘||this.readyState==‘complete‘){ // //第i张图片加载完成 // flag++ // if( flag == img@R_810_10586@l ){ // //全部加载完成 // } // } // }; }
(5)、多张图片(结合ES6 Promise.all())
//code from https://www.chinaobd2.com/wholesale/sbb3-pro3-key-programmer.html let mulitImg = [ ‘https://www.chinaobd2.com/upload/pro/sbb3-pro3-key-progrAMMer-1.jpg‘,‘https://www.chinaobd2.com/upload/pro/sbb3-pro3-key-progrAMMer-3.jpg‘ ]; let promiseAll = [],img = [],img@R_810_10586@l = mulitImg.length; for(let i = 0 ; i < img@R_810_10586@l ; 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)=>{ //全部加载完成 })
$(‘<img/>‘).attr(‘src‘,function() { $(this).remove(); // prevent memory leaks as @benweet suggested $(‘body‘).css(‘BACkground-image‘,‘url(https://www.chinaobd2.com/upload/pro/sbb3-pro3-key-progrAMMer-1.jpg)‘); });
本文参考:https://www.chinaobd2.com/wholesale/sbb3-pro3-key-programmer.html
https://www.chinaobd2.com/wholesale/can-clip-diagnostic-tool-for-renault-9.html
以上是大佬教程为你收集整理的如何使用jquery判断图片或者背景图片加载完毕全部内容,希望文章能够帮你解决如何使用jquery判断图片或者背景图片加载完毕所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。