jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用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);
};

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

// 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事件来解决兼容问题。·

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

//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)=>{
     //全部加载完成
 })

@H_716_262@如何判断背景图片加载完毕?

$(‘<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,请注明来意。