This repository has been archived on 2023-08-16. You can view files and clone it, but cannot push or open issues or pull requests.
Omphaloskepsis/plugins/jetpack/modules/photon/photon.js

56 lines
1.3 KiB
JavaScript
Raw Permalink Normal View History

2018-03-21 18:19:20 +00:00
/* jshint onevar: false */
(function($){
/**
* For images lacking explicit dimensions and needing them, try to add them.
*/
var restore_dims = function() {
$( 'img[data-recalc-dims]' ).each( function recalc() {
var $this = $( this );
if ( this.complete ) {
// Support for lazy loading: if there is a lazy-src
// attribute and it's value is not the same as the current src we
// should wait until the image load event
if ( $this.data( 'lazy-src' ) && $this.attr( 'src' ) !== $this.data( 'lazy-src' ) ) {
$this.load( recalc );
return;
}
var width = this.width,
height = this.height;
if ( width && width > 0 && height && height > 0 ) {
$this.attr( {
width: width,
height: height
} );
reset_for_retina( this );
}
}
else {
$this.load( recalc );
}
} );
},
/**
* Modify given image's markup so that devicepx-jetpack.js will act on the image and it won't be reprocessed by this script.
*/
reset_for_retina = function( img ) {
$( img ).removeAttr( 'data-recalc-dims' ).removeAttr( 'scale' );
};
/**
* Check both when page loads, and when IS is triggered.
*/
$( document ).ready( restore_dims );
if ( 'on' in $.fn ) {
$( document.body ).on( 'post-load', restore_dims );
} else {
$( document ).delegate( 'body', 'post-load', restore_dims );
}
})(jQuery);