From 5830e9af5a9c8757f55a18b34af2f08ce02f2351 Mon Sep 17 00:00:00 2001 From: liuyang Date: Tue, 18 Aug 2020 11:15:10 +0800 Subject: [PATCH] fix(zoom scroll position wrong): fix --- src/controllers/sheetmanage.js | 8 ++++---- src/controllers/zoom.js | 12 ++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/controllers/sheetmanage.js b/src/controllers/sheetmanage.js index b6dc21faf..2b6596e08 100644 --- a/src/controllers/sheetmanage.js +++ b/src/controllers/sheetmanage.js @@ -698,14 +698,14 @@ const sheetmanage = { //等待滚动条dom宽高加载完成后 初始化滚动位置 if(file["scrollLeft"] != null && file["scrollLeft"] > 0){ - $("#luckysheet-scrollbar-x").scrollLeft(file["scrollLeft"] * Store.zoomRatio); + $("#luckysheet-scrollbar-x").scrollLeft(file["scrollLeft"]); } else{ $("#luckysheet-scrollbar-x").scrollLeft(0); } if(file["scrollTop"] != null && file["scrollTop"] > 0){ - $("#luckysheet-scrollbar-y").scrollTop(file["scrollTop"] * Store.zoomRatio); + $("#luckysheet-scrollbar-y").scrollTop(file["scrollTop"]); } else{ $("#luckysheet-scrollbar-y").scrollTop(0); @@ -843,14 +843,14 @@ const sheetmanage = { Store.scrollRefreshSwitch = false; if(file["scrollLeft"] != null && file["scrollLeft"] > 0){ - $("#luckysheet-scrollbar-x").scrollLeft(file["scrollLeft"] * Store.zoomRatio); + $("#luckysheet-scrollbar-x").scrollLeft(file["scrollLeft"]); } else{ $("#luckysheet-scrollbar-x").scrollLeft(0); } if(file["scrollTop"] != null && file["scrollTop"] > 0){ - $("#luckysheet-scrollbar-y").scrollTop(file["scrollTop"] * Store.zoomRatio); + $("#luckysheet-scrollbar-y").scrollTop(file["scrollTop"]); } else{ $("#luckysheet-scrollbar-y").scrollTop(0); diff --git a/src/controllers/zoom.js b/src/controllers/zoom.js index 20f2c7f40..d039f8574 100644 --- a/src/controllers/zoom.js +++ b/src/controllers/zoom.js @@ -17,8 +17,20 @@ export function zoomChange(ratio){ clearTimeout(luckysheetZoomTimeout); luckysheetZoomTimeout = setTimeout(() => { + + let $scrollLeft = $("#luckysheet-scrollbar-x"), $scrollTop = $("#luckysheet-scrollbar-y"); + let sl = $scrollLeft.scrollLeft(), st = $scrollTop.scrollTop(); + + let wp = $scrollLeft.find("div").width(), hp = $scrollTop.find("div").height(); + jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length); changeSheetContainerSize(); + + let wc = $scrollLeft.find("div").width(), hc = $scrollTop.find("div").height(); + + $scrollLeft.scrollLeft(sl+wc-wp); + $scrollTop.scrollTop(st+hc-hp); + }, 100);