博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
推荐JS插件:imagesLoaded,监测图片加载情况并提供相应的事件(加载成功/失败)...
阅读量:5973 次
发布时间:2019-06-19

本文共 1145 字,大约阅读时间需要 3 分钟。

惯例,首先贴上imagesLoaded的官方网址:

第一次知道imagesLoaded这个插件是在做瀑布流布局时,当时选用的是masonry这个老牌瀑布流插件,imagesLoaded这个插件也是masonry官方推荐的,可能是同一伙人吧。具体场景是这样的,我们的图片宽度都是固定的,但高度不固定(瀑布流都是这样的吧),但masonry在进行排列前就必须确定图片的高度,而图片在尚未加载完成前是无法得知高度的(其实也不是绝对,我那时后期就改成在上传图片的时候就记录好图片的高度)。为了保证masonry在拿到图片高度,也即图片加载完成后再进行排列,我根据masonry的推荐,选用了这一款imagesLoaded插件。

imagesLoaded可以搭配jquery使用,也可以用原生js来调用,这里方便起见(也比较直观)就直接上jquery版的:

$('#container').imagesLoaded().always( function( instance ) {    //always事件,在所有图片都加载完成(成功与否不论)时触发  console.log('all images loaded');}).done( function( instance ) {    //done事件,在所有图片都加载成功时触发  console.log('all images successfully loaded');}).fail( function() {    //fail事件,在所有图片都加载完成,并且至少有一张图片加载失败时触发  console.log('all images loaded, at least one is broken');}).progress( function( instance, image ) {    //progress事件,在每一张图片加载完成时都触发一次  var result = image.isLoaded ? 'loaded' : 'broken';    //判断当前图片加载成功与否  console.log( 'image is ' + result + ' for ' + image.img.src );});

imagesLoaded除了能监测<img>外,还能监测用css定义的background-image,具体见:

除了瀑布流需要用到imagesLoaded,我最近还发现在利用html5 file api读取本地图片的时候也需要用到imagesLoaded,道理同瀑布流。另外,在做一些图片加载效果的时候也可以用到,比如说图片未加载完成之前放个loading图,加载失败时放个错误提示什么的都很方便呢。

转载地址:http://bcdox.baihongyu.com/

你可能感兴趣的文章
Fragment 在Android SDK1.6上实现
查看>>
jquery实现本地图片上传预览和限流处理
查看>>
Vim编辑器-Shell脚本
查看>>
Windows7 无法创建文件夹
查看>>
flex拖拽
查看>>
我的友情链接
查看>>
tomcat设置httpOnly
查看>>
部署SQL server 2008 R2三节点多实例故障转移群集全过程
查看>>
NOIP 2015[D2 T1] 跳石头
查看>>
我的友情链接
查看>>
Nginx(一)安装配置
查看>>
java uploadify上传图片并预览
查看>>
Nginx反向代理proxy_store配置
查看>>
域环境users提权调用lsrunase.exe 批处理完成安装字体
查看>>
python实现按创建时间对文件排序
查看>>
java中会存在内存泄漏吗,请简单描述。
查看>>
19道小米网运维工程师笔试真题
查看>>
python 中异常处理
查看>>
能源管理系统(Synchro EMS)
查看>>
数据的备份和保护
查看>>