diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2009-08-21 03:53:20 +0800 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-08-21 03:56:38 +0800 |
commit | 256822a1e8d387ef9cc29e354a36099dbab17992 (patch) | |
tree | 0c6f6481952101c6a859a8beec89b403f52f9032 /lib/gallery.common.js | |
parent | 2da7f937840b79b65bacb96e8dad06f2e7d41305 (diff) |
Refactor the _auto_fit method in gallery.show_full_size to a common method in gallery.common.js
Signed-off-by: Tim Almdal <tnalmdal@shaw.ca>
Diffstat (limited to 'lib/gallery.common.js')
-rw-r--r-- | lib/gallery.common.js | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/gallery.common.js b/lib/gallery.common.js index 06775d79..844e219b 100644 --- a/lib/gallery.common.js +++ b/lib/gallery.common.js @@ -125,5 +125,30 @@ ); }; + $.gallery_auto_fit_window = function(imageWidth, imageHeight) { + var size = $.gallery_get_viewport_size(); + var width = size.width() - 6, + height = size.height() - 6; + + var ratio = width / imageWidth; + imageWidth *= ratio; + imageHeight *= ratio; + + /* after scaling the width, check that the height fits */ + if (imageHeight > height) { + ratio = height / imageHeight; + imageWidth *= ratio; + imageHeight *= ratio; + } + + // handle the case where the calculation is almost zero (2.14e-14) + return { + top: Number((height - imageHeight) / 2), + left: Number((width - imageWidth) / 2), + width: Number(imageWidth), + height: Number(imageHeight) + }; + }; + })(jQuery); |