summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ccxvii.net>2023-10-23 02:31:10 +0200
committerTor Andersson <tor@ccxvii.net>2023-10-27 01:42:01 +0200
commitf15dbf51690caf5a9428fd106942695870906883 (patch)
tree2ce567f389b6fa41729cb76dac807181f3e97cc8
parentee723adbff2ef0968e95817e2bbe352e42ad9e84 (diff)
downloadserver-f15dbf51690caf5a9428fd106942695870906883.tar.gz
Delay scrollIntoView by using timer, to prevent event handler from interfering.
This is needed on Chrome when the scrollIntoView is triggered from certain events, otherwise the event processing will interrupt and stop the scrolling.
-rw-r--r--public/common/client.js14
1 files changed, 10 insertions, 4 deletions
diff --git a/public/common/client.js b/public/common/client.js
index 417efb2..ef6e6df 100644
--- a/public/common/client.js
+++ b/public/common/client.js
@@ -39,15 +39,20 @@ let snap_view = null
function scroll_into_view(e) {
if (window.innerWidth <= 800)
document.querySelector("aside").classList.add("hide")
- e.scrollIntoView({ block: "center", inline: "center", behavior: "smooth" })
+ setTimeout(function () {
+ e.scrollIntoView({ block: "center", inline: "center", behavior: "smooth" })
+ }, 0)
}
function scroll_into_view_if_needed(e) {
if (window.innerWidth <= 800) {
- // TODO: close log on mobile?
- e.scrollIntoView({ block: "start", inline: "center", behavior: "smooth" })
+ setTimeout(function () {
+ e.scrollIntoView({ block: "start", inline: "center", behavior: "smooth" })
+ }, 0)
} else {
- e.scrollIntoView({ block: "nearest", inline: "nearest", behavior: "smooth" })
+ setTimeout(function () {
+ e.scrollIntoView({ block: "nearest", inline: "nearest", behavior: "smooth" })
+ }, 0)
}
}
@@ -1302,6 +1307,7 @@ var update_layout = function () {}
function (evt) {
if (evt.ctrlKey) {
disable_map_fit()
+ anchor_transform(evt.touches)
let win_w = e_scroll.clientWidth
let win_h = e_scroll.clientHeight