changeset 745:ad483c008159 jquery

move birdview zoom indicator along with zoom drag
author hertzhaft
date Thu, 03 Feb 2011 21:50:25 +0100
parents 95e6dc1b34ec
children 2e9a48dc7a0c
files client/digitallibrary/jquery/jquery.digilib.js
diffstat 1 files changed, 24 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/client/digitallibrary/jquery/jquery.digilib.js	Thu Feb 03 10:30:15 2011 +0100
+++ b/client/digitallibrary/jquery/jquery.digilib.js	Thu Feb 03 21:50:25 2011 +0100
@@ -19,10 +19,11 @@
 
 /**
  * digilib jQuery plugin
- * 
- */
+**/ 
+
 
-/*jslint browser: true, debug: true, forin: true */
+/* jslint browser: true, debug: true, forin: true
+*/
 
 // fallback for console.log calls
 if (typeof(console) === 'undefined') {
@@ -670,7 +671,7 @@
         var url = settings.scalerBaseUrl + '?' + params;
         return url;
     };
-    
+
     // returns URL and query string for current digilib
     var getDigilibUrl = function (data) {
         packParams(data);
@@ -983,7 +984,7 @@
             setupBirdDrag(data);
         }
     };
-    
+
     // creates HTML structure for the about view in elem
     var setupAboutDiv = function (data) {
         var $elem = data.$elem;
@@ -1251,7 +1252,7 @@
             rect.adjustDiv($zoomDiv);
             return false;
         };
-        
+
         // mouseup handler: end moving
         var zoomEnd = function (evt) {
             pt2 = geom.position(evt);
@@ -1347,6 +1348,17 @@
         }
     };
 
+    // set bird zoom indicator to img rect
+    var setBirdZoom = function(data, rect) {
+        var part = data.imgTrafo.invtransform(rect);
+        // area = FULL_AREA.fit(part);
+        birdTrafo = getImgTrafo(data.$birdImg, FULL_AREA);
+        var birdRect = birdTrafo.transform(part);
+        // acount for border width
+        birdRect.addPosition({x : -2, y : -2});
+        birdRect.adjustDiv(data.$birdZoom);
+    };
+
     // setup handlers for dragging the zoomed image
     var setupZoomDrag = function(data) {
         var startPos, delta, fullRect, isBgReady;
@@ -1368,8 +1380,7 @@
             $document.bind("mouseup.dlZoomDrag", dragEnd);
             return false;
             };
-            
-        
+
         // mousemove handler: drag zoomed image
         var dragMove = function (evt) {
             var pos = geom.position(evt);
@@ -1412,6 +1423,11 @@
             $scaler.css({
                 'background-position' : bgPos.x + "px " + bgPos.y + "px"
                 });
+            // get old zoom area (screen coordinates)
+            var za = geom.rectangle($img);
+            // move
+            za.addPosition(delta.neg());
+            setBirdZoom(data, za);
             return false;
             };