aboutsummaryrefslogtreecommitdiffstats
path: root/view/theme/diabook-aerith/js/jquery.ae.image.resize.js
diff options
context:
space:
mode:
authortomtom84 <63dc41d76451@ba77e90e49a6.anonbox.net>2012-04-07 07:41:23 -0700
committertomtom84 <63dc41d76451@ba77e90e49a6.anonbox.net>2012-04-07 07:41:23 -0700
commit0fa3b7f348c3deeb85cb5f5f9bd35ba47b0e92ee (patch)
tree625102ab98b1f89f14b44ab729dc4b5a88fdeb3d /view/theme/diabook-aerith/js/jquery.ae.image.resize.js
parent1440786c319b25f870ef1f85dba7aaf50e49f842 (diff)
parent1c0700f371f96466be113a4184d7ab9acd39e22f (diff)
downloadvolse-hubzilla-0fa3b7f348c3deeb85cb5f5f9bd35ba47b0e92ee.tar.gz
volse-hubzilla-0fa3b7f348c3deeb85cb5f5f9bd35ba47b0e92ee.tar.bz2
volse-hubzilla-0fa3b7f348c3deeb85cb5f5f9bd35ba47b0e92ee.zip
Merge pull request #212 from tomtom84/master
fixes in diabook-themes
Diffstat (limited to 'view/theme/diabook-aerith/js/jquery.ae.image.resize.js')
-rw-r--r--view/theme/diabook-aerith/js/jquery.ae.image.resize.js69
1 files changed, 69 insertions, 0 deletions
diff --git a/view/theme/diabook-aerith/js/jquery.ae.image.resize.js b/view/theme/diabook-aerith/js/jquery.ae.image.resize.js
new file mode 100644
index 000000000..bac09cd45
--- /dev/null
+++ b/view/theme/diabook-aerith/js/jquery.ae.image.resize.js
@@ -0,0 +1,69 @@
+(function( $ ) {
+
+ $.fn.aeImageResize = function( params ) {
+
+ var aspectRatio = 0
+ // Nasty I know but it's done only once, so not too bad I guess
+ // Alternate suggestions welcome :)
+ , isIE6 = $.browser.msie && (6 == ~~ $.browser.version)
+ ;
+
+ // We cannot do much unless we have one of these
+ if ( !params.height && !params.width ) {
+ return this;
+ }
+
+ // Calculate aspect ratio now, if possible
+ if ( params.height && params.width ) {
+ aspectRatio = params.width / params.height;
+ }
+
+ // Attach handler to load
+ // Handler is executed just once per element
+ // Load event required for Webkit browsers
+ return this.one( "load", function() {
+
+ // Remove all attributes and CSS rules
+ this.removeAttribute( "height" );
+ this.removeAttribute( "width" );
+ this.style.height = this.style.width = "";
+
+ var imgHeight = this.height
+ , imgWidth = this.width
+ , imgAspectRatio = imgWidth / imgHeight
+ , bxHeight = params.height
+ , bxWidth = params.width
+ , bxAspectRatio = aspectRatio;
+
+ // Work the magic!
+ // If one parameter is missing, we just force calculate it
+ if ( !bxAspectRatio ) {
+ if ( bxHeight ) {
+ bxAspectRatio = imgAspectRatio + 1;
+ } else {
+ bxAspectRatio = imgAspectRatio - 1;
+ }
+ }
+
+ // Only resize the images that need resizing
+ if ( (bxHeight && imgHeight > bxHeight) || (bxWidth && imgWidth > bxWidth) ) {
+
+ if ( imgAspectRatio > bxAspectRatio ) {
+ bxHeight = ~~ ( imgHeight / imgWidth * bxWidth );
+ } else {
+ bxWidth = ~~ ( imgWidth / imgHeight * bxHeight );
+ }
+
+ this.height = bxHeight;
+ this.width = bxWidth;
+ }
+ })
+ .each(function() {
+
+ // Trigger load event (for Gecko and MSIE)
+ if ( this.complete || isIE6 ) {
+ $( this ).trigger( "load" );
+ }
+ });
+ };
+})( jQuery ); \ No newline at end of file