From c25faef6db41c5daeff420871b7d5683c25d62fa Mon Sep 17 00:00:00 2001 From: Peter Amstutz Date: Mon, 27 Jan 2014 16:19:05 -0500 Subject: [PATCH 1/1] Adjusts scrollbar to maintain center of image when zooming --- apps/workbench/app/views/collections/show.html.erb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/workbench/app/views/collections/show.html.erb b/apps/workbench/app/views/collections/show.html.erb index bbb7d205b2..42b732fd35 100644 --- a/apps/workbench/app/views/collections/show.html.erb +++ b/apps/workbench/app/views/collections/show.html.erb @@ -147,13 +147,13 @@ function graph_zoom(scale) { var pg = document.getElementById("provenance_graph"); - var st = pg.scrollTop / pg.scrollTopMax; - var sl = pg.scrollLeft / pg.scrollLeftMax; + vcenter = (pg.scrollTop + (pg.scrollHeight - pg.scrollTopMax)/2.0) / pg.scrollHeight; + hcenter = (pg.scrollLeft + (pg.scrollWidth - pg.scrollLeftMax)/2.0) / pg.scrollWidth; var g = document.getElementById("graph1").parentNode; g.setAttribute("height", parseFloat(g.getAttribute("height")) * scale); g.setAttribute("width", parseFloat(g.getAttribute("width")) * scale); - pg.scrollTop = st * pg.scrollTopMax; - pg.scrollLeft = sl * pg.scrollLeftMax; + pg.scrollTop = (vcenter * pg.scrollHeight) - (pg.scrollHeight - pg.scrollTopMax)/2.0; + pg.scrollLeft = (hcenter * pg.scrollWidth) - (pg.scrollWidth - pg.scrollLeftMax)/2.0; }
-- 2.30.2