Мое простое решение, ему не нужен внешний плагин, и для общих случаев должно быть достаточно:
/**
* Trigger a callback when the selected images are loaded:
* @param {String} selector
* @param {Function} callback
*/
var onImgLoad = function(selector, callback){
$(selector).each(function(){
if (this.complete || /*for IE 10-*/ $(this).height() > 0) {
callback.apply(this);
}
else {
$(this).on('load', function(){
callback.apply(this);
});
}
});
};
используйте его так:
onImgLoad('img', function(){
// do stuff
});
например, чтобыДобавлять изображения к загрузке вы можете:
$('img').hide();
onImgLoad('img', function(){
$(this).fadeIn(700);
});
Или, как альтернатива, если вы предпочитаете подход, подобный плагину jquery:
/**
* Trigger a callback when 'this' image is loaded:
* @param {Function} callback
*/
(function($){
$.fn.imgLoad = function(callback) {
return this.each(function() {
if (callback) {
if (this.complete || /*for IE 10-*/ $(this).height() > 0) {
callback.apply(this);
}
else {
$(this).on('load', function(){
callback.apply(this);
});
}
}
});
};
})(jQuery);
и используйте его в этомпуть:
$('img').imgLoad(function(){
// do stuff
});
например:
$('img').hide().imgLoad(function(){
$(this).fadeIn(700);
});