fix: delay scroll handler binding to skip queued scroll event
scrollTop assignment triggers an async scroll event. When all tasks fit in the viewport, handleScrollFocus recalculates center-aligned task and picks the last one instead of the saved one. Using setTimeout(0) defers handler binding to after the queued event fires.
This commit is contained in:
parent
2229fdd0ef
commit
ab000bcd41
@ -170,8 +170,12 @@ function initScrollFocus() {
|
|||||||
|
|
||||||
scrollView.removeEventListener("scroll", handleScrollFocus);
|
scrollView.removeEventListener("scroll", handleScrollFocus);
|
||||||
scrollView.removeEventListener("scroll", handleScrollSave);
|
scrollView.removeEventListener("scroll", handleScrollSave);
|
||||||
|
|
||||||
|
// Delay binding to skip the async scroll event queued by scrollToTask
|
||||||
|
setTimeout(() => {
|
||||||
scrollView.addEventListener("scroll", handleScrollFocus);
|
scrollView.addEventListener("scroll", handleScrollFocus);
|
||||||
scrollView.addEventListener("scroll", handleScrollSave);
|
scrollView.addEventListener("scroll", handleScrollSave);
|
||||||
|
}, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleScrollFocus() {
|
function handleScrollFocus() {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user