JS批量加载图片是否完成

纯JS实现的批量图片预览加载功能 需要一张转圈的小图片,需要预览的所有图片默认的位置全是这张小图片,滚轮滚到原图需要出现的位置时候,预览加载替换小图片 立即下载

项目中JS异步加载图片,且需要在图片全部加载完成后调用第三方插件对图片进行自动排版

难点在于,如何判断异步加载的图片都加载完成?废话不多说,直接上代码,如下:

/**
 * 菜单点击后, 数据区显示
 * @param {Object} _TYPE_
 * @param {Object} _KEY_
 */
function loadPortfolioItem(_TYPE_, _KEY_) {
	// <!-- <p></p> 调整子菜单导航栏和搜索后高度不一致问题。没有实际意义-->
	var _HTML_ = '<p></p><div class="row portfolio-container">';
	var ITEM_DATA = PORTFOLIO_ITEM_DATA[_KEY_];
	ITEM_DATA.forEach(function(item, index){
		_HTML_ += ' <div class="col-xl-4 col-sm-6 portfolio-item"><div class="portfolio-wrap">';
			_HTML_ += "<img src='"+item.ITEM_URL+"' class='img-fluid' alt='' />";
			_HTML_ += " <div class='portfolio-info'><h4>"+item.ITEM_TITLE+"</h4><p>"+item.ITEM_NAME+"</p><div class='portfolio-links'>";
			_HTML_ += " <a href='"+item.ITEM_URL +"' data-gall='portfolioGallery'";
			_HTML_ += " class='venobox' title="+item.ITEM_TITLE+"><i class='icofont-look'></i></a></div></div></div>";
			_HTML_ += ' <div class="py-3"><p class="text-muted text-sm mb-1" align="center"><a class="text-dark"'
			_HTML_ += " href='javascript:void(0)'>" +item.ITEM_TITLE+ "</a></p></div></div>";
	});
	_HTML_ += ' </div>';
	$('#portfolio-container-parent').html(_HTML_);
	if (_TYPE_ == undefined || _TYPE_ == null || _TYPE_ == 'INIT') {
		return ;
	}
	// JS异步构造数据后, 需要加载对应的第三方插件, 类似main.js中也是如此处理
	initiateThirdpartyJsPlugValidate();
}

/**
 * main.js 中通过 $(window).on('load', function() {}) 加载的第三方插件 Initiate venobox 和 Initiate Porfolio isotope and filter。
 * 菜单点击后, 加载Initiate Porfolio isotope and filter前需要验证DOM, IMG, 样式等是否全部加载完成
 */
function initiateThirdpartyJsPlugValidate(){
	var imgLoadLength = 0;
	// 防止其它第三方验证时间过程或者验证失败, 导致查看大图出问题。
	// venobox 就是图片上的查看大图的插件效果, 影响功能使用, 尽量先加载
	// 而Initiate Porfolio isotope and filter 只是控制图片显示好看一些, 加载耗时长 且 网络不好的情况可能会失败
	// Initiate venobox 加载
	$('.venobox').venobox({
	  'share': false
	});
	// Initiate Porfolio isotope and filter 验证
	$('.portfolio-container .portfolio-item img').each(function() {
		$(this).on('load',function(){
			imgLoadLength++;
			if(imgLoadLength == $('.portfolio-container .portfolio-item img').length){
				initiateThirdpartyJsPlug();
			}
		})
	});
}

/**
 * Initiate Porfolio isotope and filter
 */
function initiateThirdpartyJsPlug(){
	var portfolioIsotope = $('.portfolio-container').isotope({
		itemSelector: '.portfolio-item'
	});
}

核心思路:基于img的.on('load',function(){})判断是否加载完成,已测试过我的阿里云ECS实例1M宽带下加载数十张大图片,加载耗时近两分钟,也可以在图片都加载完成后调用第三方插件。

以上代码仅供参考,如有不当之处,欢迎指出!!!

更多干货,欢迎大家关注和联系我。期待和大家一起更好的交流、探讨技术!!!

纯JS图片批量预加载技术代码 一款实用的图片预加载技术,真正实现加载完成显示图片,加载过程中显示进度指示,本加载可以批量进行,将成批图片加载完成才显示,使用循环依次载入图片,并将路径暂存在数组中,加载完成后取出数组数据并显示。 立即下载

相关推荐

利用VS2019编写安卓APP的步骤和所遇问题的解决办法

遇到了代码错误,这个可以将鼠标箭头置于错误代码处,这样VS2019给你解决办法,给的方法不能解决,并且读了程序都没有问题,那么你应该重启软件,这样还是不能解决,你尝试重新生成解决方案,还是不能解决有可能是运用的代码与当前版本不相符和、过时了,这个时候应当运用相应版本的代码。注:VS2019编写APP的空间不是很稳定,当你写的代码没有问题,但是出现了报错,可能是空间崩溃了,这个时候可以重启软件。点击“+”号,创建密钥存储,输入“别名”、“密码”、以及下面中的任意一项,直至红色框消失后。

youbestcando的博客 7812

网页性能优化——图片,使用多种图片处理策略提升性能,包括压缩、云存储、预加载、懒加载、渐进式图片

前言 网站如果包含很多图片等静态资源文件,那打包后的文件会非常大。不做处理会导致非常糟糕的浏览体验 一、图片处理 1、压缩 首先就是压缩静态资源的大小。相机照片一张就能轻松破10M,微信、钉钉等都会自动压缩图片视频。放一个简单好用的在线图片压缩链接 squoosh 图片过多时,效果受限,无法从根本上解决 2、云存储 将图片等资源存储在云上,使用外链方式引入 需先下载后加载,下载速度不能保证,体验可能仍然很糟糕 二、图片预加载 图片预加载就是在当前页面加载完毕后,预先加载其它页面所需的图片,这样,切换到该页

ymzhao 4250

基于Python的信用卡欺诈检测机器学习案例报告

当今时代,在线支付已成为一种高效便捷的支付方式,我们可以突破时间和空间的限制,输入我们的信用卡各项信息就可以完成在线支付。但随之而来的是这种支付方式也具备一定的风险性,我们无法辨别对方是否是恶意套取我们资金的非法分子。当信用卡信息数据泄露导致金钱失窃并最终失去客户忠诚度和公司声誉时,组织、消费者、银行和商家都会面临风险。2017 年,未经授权的信用卡操作达到了惊人的 1670 万受害者。此外,据美国联邦贸易委员会 (FTC) 报告,2017 年信用卡欺诈索赔数量比上一年高出 40%。

weixin_45673389的博客 6691

swiper图片懒加载(多行多列)

首先看文档:lazyLoading_swiper3参数选项 问题一:多行多列的swiper发现只有第一行会出现懒加载,第二行的swiper一直不加载 解决方案:增加属性watchSlidesVisibility:true, 问题二:要做到懒加载正式图片之前先显示一张默认的背景图 解决方案:正式图片放在data-src中,默认背景图放在src中 <img class="swiper-lazy" data-src="images/goods.jpg" alt=" " src="images

山有木兮木有枝 心悦君兮君不知 4289

别再手动算频谱了!用这个在线FFT工具,5分钟搞定JSON/CSV数据分析

本文介绍了一款高效的在线FFT工具,帮助用户快速分析JSON/CSV格式的时域数据,5分钟内完成频谱分析。通过傅里叶变换(FFT)算法,大幅提升计算效率,解决传统手动计算的痛点,适用于工业振动分析、设备故障诊断等场景。

weixin_29172201的博客 258

Linux系统下奥比中光Astra Pro相机SDK部署与避坑指南

本文详细指导了在Linux系统下部署奥比中光Astra Pro深度相机SDK的全过程,涵盖系统准备、SDK安装、设备权限配置及常见问题排查。重点解析了USB设备规则配置这一关键步骤,并提供了Python与C++项目的集成方法,旨在帮助开发者快速完成相机配置,避免常见陷阱。

weixin_28455801的博客 298

图片加载完在执行js

// $(window).on("load", function () { // var article_summarys = $('.article_summary') // for (var i = 0; i < article_summarys.length; i++) { // var article_summary = article_summarys[i] // lay_one_article(article_summary) // .

wangjinyu124419的博客 621

从数据手册到代码:一步步解读SC7A20寄存器配置与加速度值换算原理

本文详细解析了SC7A20三轴加速度传感器的寄存器配置与加速度值换算原理。从数据手册出发,逐步拆解关键寄存器设置,并推导原始ADC值到物理加速度的完整换算过程,帮助开发者深入理解传感器底层工作原理,提升嵌入式开发效率。

weixin_29179311的博客 366

JS批量下载图片

用JS在Chrome浏览器上方便的批量下载图片,程序员一定都玩过的东东。懒得写的,随用随拿,别忘了点赞。

晓强的技术博客 4747

告别夜间噪点!用瑞芯微RV1126B的AI-ISP,手把手教你打造0.01Lux超低光摄像头

本文详细介绍了如何利用瑞芯微RV1126B芯片的AI-ISP技术,打造0.01Lux超低光摄像头,解决夜间噪点问题。通过AI算法与图像信号处理的深度融合,RV1126B的3TOPS边缘算力实现了像素级AI降噪和语义感知增强,显著提升低光环境下的图像质量。文章包含硬件选型、软件配置和实战调优指南,助力开发者在AIoT领域实现高性能视觉应用。

weixin_33725722的博客 564

2025华为od机试真题B卷【字符串计数匹配】Java&Go 实现

给你一个字符串str和整数k,返回满足以下条件的所有子字符串个数: 1.恰好包含k个字母。 2.数字0-9各出现至少一次。

MISAYAONE的博客 638

react 判断图片是否加载完成_小猿圈利用JS判断多张图片加载情况

现在人的手机里有很多照片,但是你知道照片是怎么被储存的吗,那么多照片又是怎么加载的呢?通过什么手段加载的呢?下面小猿圈利用JS判断多张图片加载情况,希望对你的学习有所帮助。可以采用es6中的Promise.all()来实现let mulitImg = ['http://www.3mooc.com/wp-content/uploads/2019/5/1.jpg','http://www.3mooc....

weixin_39636057的博客 337

基于深度学习的商品标签识别系统:UI界面 + YOLOv8/v7/v6/v5代码 + 训练数据集

基于YOLO系列模型的商品标签识别系统能够有效解决商品信息提取的自动化问题。通过合理的数据集准备、模型训练和UI设计,我们可以实现一个功能强大的商品标签识别系统。希望本文提供的内容能够为大家提供有价值的帮助。

YOLO 474

【js】获取图片原始尺寸、判断图片是否加载完成

获取图片原始尺寸 var img = document.getElementById("#img"); console.log(img.naturalWidth) //获取图片原始宽 console.log(img.naturalHeight) //获取图片原始高 //适用于现代浏览器 判断图片是否加载完成 1,load事件 var img = document.getElement...

星辰的笔记 570

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

js 判断图片加载完成

// 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(){ ...

weixin_30609287的博客 93

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

php判断图片加载完,JavaScript_JS判断图片是否加载完成方法汇总(最新版),有时需要获取图片的尺寸,这 - phpStudy...

JS判断图片是否加载完成方法汇总(最新版)有时需要获取图片的尺寸,这需要在图片加载完成以后才可以。下面小编给大家整理了几种关于JS判断图片是否加载完成方法汇总,一起看看吧。一、load事件$('img').onload = function() {//code}优点:简单易用,不影响HTML代码。缺点:只能指定一个元素,javascipt代码必须置于图片元素的下方二、jquery方法$(funct...

weixin_42396918的博客 162

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

html页面里的js无法加载图片,js或jquery如何判断网页图片是否已载入完成

要想判断网页中的图片是否已加载完成,可以使用下面的三种方法。onload方法通过向img标签添加onload属性,并填入相应的函数来执行后续的javascipt代码。如下代码例子中img元素默认是不显示的,通过onload判断加载完成后再将图片显示出来。代码如下:  function get(ts){ts.style.display = 'block'; //显示图片}优点:可以将javascri...

weixin_42350865的博客 627

JS判断图片是否加载完成

我们经常需要获取图片的宽高,这需要在图片加载完成后才可以。 下面我就介绍几种判断图片是否加载完成的方法: 首先我们先写一个img标签 <img src="./img.png" alt=""> 1.complete属性: var imgNode = document.getElementsByTagName('img')[0]; var timer = setTimeout...

liuhua_2323的博客 3717

js判断各种资源是否加载完成的方法汇总,资源预加载问题

将网站放在服务器后,因为服务器带宽问题,才发现很多资源比如图片、音频在网站打开后1分钟还没有加载,导致无法播放。所以说我决定使用js在最开头加一个判断资源是否加载完成的函数并运行,只有资源全加载完成了才能进入主页面。 在网上查了很多都是说用onload,但是这只能判断文档dom树是否解析完成,但是音频、图片等等资源加载完成没是无法判断的。 下面我将来一一分享我的方案。 1,判断音频/视频是否加载完成 音频,视频元素分别是<audio>、<vedio>,这两个元素都有ready

yanhanhui1的博客 8518

js判断图片是否加载完成

js判断图片是否加载完成

博哥的二进制世界 5102

判断图片是否加载完成的六种方式

判断图片是否加载完成的六种方式 一、load事件 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>img - load event</title> </head> <body> <img id="img1"src="http://pic1.win4000.com/wallpaper/f/51c3...

突维 3823

如何判断图片是否加载完成

一、load事件 通过向img标签添加onload属性,并填入相应的函数来执行后续的javascipt代码。如下代码例子中img元素默认是不显示的,通过onload判断加载完成后再将图片显示出来。 function get(ts){ ts.style.display = 'block'; //显示图片 } 二、img的complete属性

whazhl的专栏 2260

JavaScript怎么判断图片是否加载完成?

JavaScript怎么判断图片是否加载完成? 有时需要获取图片的尺寸,这需要在图片加载完成以后才可以,求方法? 解答: 一、load事件                    img - load event                loading...                img1.onload = funct

北风网IT 948

js图片加载 完成之前显示loading中的图片

<html> <title>js图片未加载完显示loading效果</title> <body> <style> img{float:left;width:200px;height:200px;margin:0 10px 10px 0} </style> <script> //判断浏览器...

一只快乐的小猴子的博客 1万+

怎么 判断图片是否加载完成

有时候我们在前端开发工作中为了获取图片的信息,需要在图片加载完成后才可以正确的获取到图片的大小尺寸,并且执行相应的回调函数使图片产生某种显示效果。本文主要整理了几种常见的jquery判断图片加载完成时的方法 今天来看下如何判断所有的图片加载完成,而在加载完成之前可以使用 loading 的 gif 图表示正在加载中。 一、普通方法 监听 img 的 load 方法,每 l

老虎帅呆了的博客 2948

如何使用JavaScript判断图片是否在页面加载完成

本文介绍了在网页开发中使用JavaScript判断图片加载状态的多种方法。首先,可以通过complete属性快速检查图片是否加载完成。其次,通过监听load和error事件,可以更可靠地处理图片加载成功或失败的情况。为了简化异步操作,可以使用Promise封装图片加载过程。此外,文章还提供了检查页面所有图片加载状态的方法,以及使用MutationObserver监控动态添加图片的技巧。最后,文章给出了性能优化建议,如预加载关键图片、懒加载非关键图片等。根据具体需求,开发者可以选择合适的方法来提升网页性能和用

得塔云的博客 916
上一篇: 百度地图样式冲突问题
饶艳辉
博客等级 码龄15年 20粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值