From: Peter Amstutz Date: Mon, 27 Jan 2014 21:19:05 +0000 (-0500) Subject: Adjusts scrollbar to maintain center of image when zooming X-Git-Tag: 1.1.0~2722^2~51 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/c25faef6db41c5daeff420871b7d5683c25d62fa?hp=489595e9636f7a271774cc8188f691d49f514e43 Adjusts scrollbar to maintain center of image when zooming --- 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; }