From 829c89e5ff44fa51c17bbf1e373d20b3594d5463 Mon Sep 17 00:00:00 2001 From: Yuka Saito Date: Sat, 16 Jan 2016 19:33:02 +0900 Subject: [PATCH] synchronize scroller when zooming set scrollToToday=false after first render clip to start/end if the new margin-left over the range --- js/jquery.fn.gantt.js | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/js/jquery.fn.gantt.js b/js/jquery.fn.gantt.js index 564f419..21e12c3 100644 --- a/js/jquery.fn.gantt.js +++ b/js/jquery.fn.gantt.js @@ -296,6 +296,7 @@ if (settings.scrollToToday) { core.navigateTo(element, 'now'); core.scrollPanel(element, 0); + settings.scrollToToday = false; // or, scroll the grid to the left most date in the panel } else { if (element.hPosition !== 0) { @@ -307,6 +308,7 @@ } $dataPanel.css({ "margin-left": element.hPosition }); element.scrollNavigation.panelMargin = element.hPosition; + core.synchronizeScroller(element); } core.repositionLabel(element); } @@ -1186,11 +1188,10 @@ curMarg = $dataPanel.css("margin-left").replace("px", ""); val = $dataPanel.find(".today").offset().left - $dataPanel.offset().left; val *= -1; - if (val > 0) { - val = 0; - } else if (val < maxLeft) { - val = maxLeft; - } + + val = (val < 0 ? val : 0); + val = (val > maxLeft ? val : maxLeft); + $dataPanel.animate({ "margin-left": val }, "fast", shift); element.scrollNavigation.panelMargin = val; break; @@ -1198,9 +1199,11 @@ maxLeft = (dataPanelWidth - rightPanelWidth) * -1; curMarg = $dataPanel.css("margin-left").replace("px", ""); val = parseInt(curMarg, 10) + val; - if (val <= 0 && val >= maxLeft) { - $dataPanel.animate({ "margin-left": val }, "fast", shift); - } + + val = (val < 0 ? val : 0); + val = (val > maxLeft ? val : maxLeft); + + $dataPanel.animate({ "margin-left": val }, "fast", shift); element.scrollNavigation.panelMargin = val; } core.synchronizeScroller(element);