Improve auto-scroll snapping
This commit is contained in:
parent
256f0a58db
commit
12f6e5069d
|
@ -9253,12 +9253,21 @@ jQuery(async function () {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const chatElementScroll = document.getElementById('chat');
|
const chatElementScroll = document.getElementById('chat');
|
||||||
chatElementScroll.addEventListener('wheel', function () {
|
const chatScrollHandler = function () {
|
||||||
scrollLock = true;
|
const scrollIsAtBottom = Math.abs(chatElementScroll.scrollHeight - chatElementScroll.clientHeight - chatElementScroll.scrollTop) < 1;
|
||||||
}, { passive: true });
|
|
||||||
chatElementScroll.addEventListener('touchstart', function () {
|
// Cancel autoscroll if the user scrolls up
|
||||||
scrollLock = true;
|
if (scrollLock && scrollIsAtBottom) {
|
||||||
}, { passive: true });
|
scrollLock = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Resume autoscroll if the user scrolls to the bottom
|
||||||
|
if (!scrollLock && !scrollIsAtBottom) {
|
||||||
|
scrollLock = true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
chatElementScroll.addEventListener('wheel', chatScrollHandler, { passive: true });
|
||||||
|
chatElementScroll.addEventListener('touchmove', chatScrollHandler, { passive: true });
|
||||||
chatElementScroll.addEventListener('scroll', function () {
|
chatElementScroll.addEventListener('scroll', function () {
|
||||||
if (is_use_scroll_holder) {
|
if (is_use_scroll_holder) {
|
||||||
this.scrollTop = scroll_holder;
|
this.scrollTop = scroll_holder;
|
||||||
|
|
Loading…
Reference in New Issue