aboutsummaryrefslogtreecommitdiffstats
path: root/view/theme/diabook-blue/js/jquery.ae.image.resize.js
diff options
context:
space:
mode:
authorMichael <icarus@dabo.de>2012-04-11 18:47:21 +0200
committerMichael <icarus@dabo.de>2012-04-11 18:47:21 +0200
commitc3139fa0fd49b0b4de4568d46a6946c75ccb2a62 (patch)
treea46d809d2e11fefba938717d38b1371572e4d815 /view/theme/diabook-blue/js/jquery.ae.image.resize.js
parent81a8d4f9dbd32de133e647c87a5394dd52f009fe (diff)
parentfe257a20324fe68838e5829e19d18777045a41b4 (diff)
downloadvolse-hubzilla-c3139fa0fd49b0b4de4568d46a6946c75ccb2a62.tar.gz
volse-hubzilla-c3139fa0fd49b0b4de4568d46a6946c75ccb2a62.tar.bz2
volse-hubzilla-c3139fa0fd49b0b4de4568d46a6946c75ccb2a62.zip
Merge branch 'master' of github.com:annando/friendica
Diffstat (limited to 'view/theme/diabook-blue/js/jquery.ae.image.resize.js')
-rw-r--r--view/theme/diabook-blue/js/jquery.ae.image.resize.js69
1 files changed, 69 insertions, 0 deletions
diff --git a/view/theme/diabook-blue/js/jquery.ae.image.resize.js b/view/theme/diabook-blue/js/jquery.ae.image.resize.js
new file mode 100644
index 000000000..bac09cd45
--- /dev/null
+++ b/view/theme/diabook-blue/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