Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMadhura Jayaratne <madhura.cj@gmail.com>2011-05-31 21:49:53 +0400
committerMadhura Jayaratne <madhura.cj@gmail.com>2011-05-31 21:51:31 +0400
commitaa7c7d771da1ac05960bcbd27cb72aadd1ad0e3d (patch)
tree5e8b64f5eebd4450face05f0654d69230f04f149 /js/tbl_gis_visualization.js
parente71db6482c69d7a2ad75bc25b3b8b9c01ba5bc8c (diff)
Zoom relative to the cursor position
Diffstat (limited to 'js/tbl_gis_visualization.js')
-rw-r--r--js/tbl_gis_visualization.js28
1 files changed, 21 insertions, 7 deletions
diff --git a/js/tbl_gis_visualization.js b/js/tbl_gis_visualization.js
index a834d51190..2d92e0b8cb 100644
--- a/js/tbl_gis_visualization.js
+++ b/js/tbl_gis_visualization.js
@@ -10,7 +10,8 @@
var x = 0;
var y = 0;
var scale = 1;
-var orig_scale = 1;
+var shiftX;
+var shiftY;
var svg;
/**
@@ -63,6 +64,9 @@ function zoomAndPan() {
* Displaying tooltips for GIS objects.
*/
$(document).ready(function() {
+ shiftX = $('#placeholder svg').attr('width') / 6;
+ shiftY = $('#placeholder svg').attr('height') / 6;
+
$('#placeholder').svg({
onLoad: function(svg_ref) {
svg = svg_ref;
@@ -76,13 +80,18 @@ $(document).ready(function() {
if (delta > 0) {
//zoom in
scale *= 1.5;
+ shiftX *= 1.5;
+ shiftY *= 1.5;
+ x -= shiftX;
+ y -= shiftY;
zoomAndPan();
} else {
//zoom out
scale /= 1.5;
- if (scale <= 0.5 * orig_scale) {
- scale = 0.5 * orig_scale;
- }
+ x += shiftX;
+ y += shiftY;
+ shiftX /= 1.5;
+ shiftY /= 1.5;
zoomAndPan();
}
return true;
@@ -106,6 +115,10 @@ $(document).ready(function() {
$('#placeholder').live('dblclick', function() {
scale *= 1.5;
+ shiftX *= 1.5;
+ shiftY *= 1.5;
+ x -= shiftX;
+ y -= shiftY;
zoomAndPan();
});
@@ -113,9 +126,10 @@ $(document).ready(function() {
e.preventDefault();
//zoom out
scale /= 1.5;
- if (scale <= 0.5 * orig_scale) {
- scale = 0.5 * orig_scale;
- }
+ x += shiftX;
+ y += shiftY;
+ shiftX /= 1.5;
+ shiftY /= 1.5;
zoomAndPan();
});