diff --git a/ui/experiment-ribbon-navigation-n-zoom.html b/ui/experiment-ribbon-navigation-n-zoom.html index febe3888..2cbd8996 100755 --- a/ui/experiment-ribbon-navigation-n-zoom.html +++ b/ui/experiment-ribbon-navigation-n-zoom.html @@ -27,6 +27,8 @@ function containerSize(W, H){ var oW = $('.meta-container').width() var oH = $('.meta-container').height() + var zoom = $('.container').css('zoom') + $('.meta-container').css({ 'width': W, 'height': H @@ -34,8 +36,12 @@ function containerSize(W, H){ // shift the field... $('.container').css({ - 'margin-top': parseFloat($('.container').css('margin-top')) + (H-oH)/2, - 'margin-left': parseFloat($('.container').css('margin-left')) + (W-oW)/2 + // compensate top/left that get changed while zooming.... + 'top': H/2 * 1/zoom - H/2, + 'left': W/2 * 1/zoom - W/2, + + 'margin-top': (parseFloat($('.container').css('margin-top')) + (H-oH)/2), + 'margin-left': (parseFloat($('.container').css('margin-left')) + (W-oW)/2) }) } @@ -89,6 +95,8 @@ function getCurrentVerticalOffset(square){ square = $('.square.current') } + var zoom = $('.container').css('zoom') + var ribbons = $('.ribbon') var ribbon = square.parents('.ribbon') var squares = ribbon.children('.square') @@ -117,6 +125,8 @@ function getCurrentHorizontalOffset(square){ square = $('.square.current') } + var zoom = $('.container').css('zoom') + var ribbon = square.parents('.ribbon') var squares = ribbon.children('.square') @@ -179,9 +189,13 @@ function alignRibbon(square, position){ // XXX need to fix animation jumping around... // XXX try transition-origin instead of compensating by moving... -function zoom(factor){ +function zoomContainerBy(factor){ var zoom = $('.container').css('zoom')*factor + setContainerZoom(zoom) +} + +function setContainerZoom(zoom){ var H = $('.meta-container').height() var W = $('.meta-container').width() @@ -194,6 +208,31 @@ function zoom(factor){ }) } +function fitImage(){ + var H = $('.meta-container').height() + var W = $('.meta-container').width() + + var h = $('.square.current').height() + var w = $('.square.current').width() + + var f = Math.min(H/h, W/w) + + setContainerZoom(f) +} + +function fitThreeImages(){ + var H = $('.meta-container').height() + var W = $('.meta-container').width() + + var h = $('.square.current').height() + // XXX cheating, need to get three widths... + var w = $('.square.current').width()*3 + + var f = Math.min(H/h, W/w) + + setContainerZoom(f) +} + -Zoom: - +Zoom: + + + +
Size: