图片/图形

imagesLoaded - 检测图片是否正确加载js插件

阿里云


magesLoaded 是一款用于检测页面中的图片是否被加载的 js 插件。imagesLoaded 是非常有用的插件,当你的页面中某幅图片没有被加载时,默认会显示一个红叉或图片 alt 文本,imagesLoaded 可以将未加载的图片替换为你设置的图片。

  1. <script src="/path/to/isotope.pkgd.min.js"></script>
也想出现在这里?联系我们
创客主机

使用方法

  1. imagesLoaded( elem, callback )
  2. // you can use `new` if you like
  3. new imagesLoaded( elem, callback )

elem:该参数是元素,节点列表,数组或选择器字符串

callback:图片被加载后的回调事件
使用 callback 回调函数和绑定 always 事件是一样的(看事件描述一节内容)。

  1. // 作为元素
  2. imagesLoaded( document.querySelector('#container'), function( instance ) {
  3.   console.log('all images are loaded');
  4. });
  5. // 作为选择器字符串
  6. imagesLoaded( '#container', function() {...});
  7. // 多个元素
  8. var posts = document.querySelectorAll('.post');
  9. imagesLoaded( posts, function() {...});

事件

imagesLoaded 是一个事件发射源,你可以为事件绑定事件监听。

  1. var imgLoad = imagesLoaded( elem );
  2. function onAlways( instance ) {
  3.   console.log('all images are loaded');
  4. }
  5. // bind with .on()
  6. imgLoad.on( 'always', onAlways );
  7. // unbind with .off()
  8. imgLoad.off( 'always', onAlways );

always

  1. imgLoad.on( 'always', function( instance ) {
  2.   console.log('ALWAYS - all images have been loaded');
  3. });

在所有图片被加载或确认 broken 时触发。instance:imagesLoaded 实例对象。

done

  1. imgLoad.on( 'done', function( instance ) {
  2.   console.log('DONE  - all images have been successfully loaded');
  3. });

在所有图片被成功加载没有 broken 图片的时候触发。

fail

  1. imgLoad.on( 'fail', function( instance ) {
  2.   console.log('FAIL - all images loaded, at least one is broken');
  3. });

在所有图片被加载至少有一幅图片是 broken 图片的时候触发。

progress

  1. imgLoad.on( 'progress', function( instance, image ) {
  2.   var result = image.isLoaded ? 'loaded' : 'broken';
  3.   console.log( 'image is ' + result + ' for ' + image.img.src );
  4. });

在每一幅图片都被加载之后触发

instance:imagesLoaded 实例对象

image:加载图片时的 loading 对象的实例对象
要检测的所有图片的 LoadingImage 实例对象。

  1. var imgLoad = imagesLoaded('#container');
  2. imgLoad.on( 'always', function() {
  3.   console.log( imgLoad.images.length + ' images loaded' );
  4.   // detect which image is broken
  5.   for ( var i = 0, len = imgLoad.images.length; i < len; i++ ) {
  6.     var image = imgLoad.images[i];
  7.     var result = image.isLoaded ? 'loaded' : 'broken';
  8.     console.log( 'image is ' + result + ' for ' + image.img.src );
  9.   }
  10. });

与 jQuery 结合使用

如果你在页面中引入的 jQuery,imagesLoaded 可以作为一个 jQuery 插件来使用。

  1. $('#container').imagesLoaded( function() {
  2.   // images have loaded
  3. });

jQuery Deferred

作为 jQuery 插件来使用时会返回一个 jQuery Deferred object。你可以和前面使用事件的方法一样使用.always()、.done()、.fail()和.progress()。

  1. $('#container').imagesLoaded()
  2.   .always( function( instance ) {
  3.     console.log('all images loaded');
  4.   })
  5.   .done( function( instance ) {
  6.     console.log('all images successfully loaded');
  7.   })
  8.   .fail( function() {
  9.     console.log('all images loaded, at least one is broken');
  10.   })
  11.   .progress( function( instance, image ) {
  12.     var result = image.isLoaded ? 'loaded' : 'broken';
  13.     console.log( 'image is ' + result + ' for ' + image.img.src );
  14.   });

RequireJS

imagesLoaded 可以和 RequireJS 一起工作。你可以 require imagesloaded.pkgd.js。

  1. requirejs( [
  2.   'path/to/imagesloaded.pkgd.js',
  3. ], function( imagesLoaded ) {
  4.   imagesLoaded( '#container', function() { ... });
  5. });

或者可以通过 Bower 来管理依赖。将 baseUrl 设置为 bower_components,然后将路径设置为你的 app 工作路径。

  1. requirejs.config({
  2.   baseUrl: 'bower_components/',
  3.   paths: { // path to your app
  4.     app: '../'
  5.   }
  6. });
  7.  
  8. requirejs( [
  9.   'imagesloaded/imagesloaded',
  10.   'app/my-component.js'
  11. ], function( imagesLoaded, myComp ) {
  12.   imagesLoaded( '#container', function() { ... });
  13. });

imagesLoaded - 检测图片是否正确加载 js 插件

已有 509 人购买
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!