imagesLoaded插件是一个轻量级的JavaScript插件,可用于检测页面上的所有图片是否已加载完毕。不仅可以检查img标签图片,还可以检查background背景图片, 当图片加载完成后,还可以触发对应的回调函数,从而执行相应的操作。
jQuery 使用
<script> $('#container').imagesLoaded(function () { // 图片加载成功 }); // 属性 $('#container').imagesLoaded({ // 属性.. }, function () { // 图片加载成功 } ); </script>
.imagesLoaded()返回一个jQuery 回调函数。这允许您使用.always()、.done()和。.fail().progress()
<script> $('#container').imagesLoaded() .always(function (instance) { console.log('触发后的所有图像都已加载'); }) .done(function (instance) { console.log('触发后所有已成功加载没有任何损坏的图像。!'); }) .fail(function () { console.log('触发后的所有图像都已都加载并且至少一个断开的图像。'); }) .progress(function (instance, image) { //已加载的每个图像后触发。 var result = image.isLoaded ? 'loaded' : 'broken'; console.log('image is ' + result + ' for ' + image.img.src); }); </script>
JavaScript 使用
<script> imagesLoaded(elem, callback) // 属性选项 imagesLoaded(elem, options, callback) // 或者使用"new" new imagesLoaded(elem, callback) //elem 元素、节点列表、数组或选择器字符串 //options 属性选项 //callback 函数- 所有图像加载后触发的函数 </script>
使用回调函数与将其绑定到事件相同always
<script> // element imagesLoaded( document.querySelector('#container'), function( instance ) { console.log('all images are loaded'); }); // selector string imagesLoaded( '#container', function() {...}); // multiple elements var posts = document.querySelectorAll('.post'); imagesLoaded( posts, function() {...}); </script>
使用 .on()、.off() 和 .once() 方法将事件与普通 JS 绑定。
<script> var imgLoad = imagesLoaded(elem); function onAlways(instance) { console.log('all images are loaded'); } // bind with .on() imgLoad.on('always', onAlways); // unbind with .off() imgLoad.off('always', onAlways); </script>
检查 背景图
设置{ background: true }为检测元素的背景图像何时加载。
<script> // jQuery $('#container').imagesLoaded({ background: true }, function () { console.log('#container background image loaded'); }); // JavaScript imagesLoaded('#container', { background: true }, function () { console.log('#container background image loaded'); }); </script>