Skip to content

Commit a27de7d

Browse files
añadido que no creaca indefinidamente scrollcount
1 parent e3f47d1 commit a27de7d

1 file changed

Lines changed: 14 additions & 14 deletions

File tree

frontend/home/ui/gestor_chats.js

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ async function _insertar_mensaje_dom({ html, fecha, id_chat_str, id_emisor, id_m
438438

439439
let _usuario_scrolleando = false;
440440
let _timer_scroll_usuario = null;
441-
const PORCENTAJE_UMBRAL_CARGA = 0.35; // 30% de la altura total del scroll para disparar carga
441+
const PORCENTAJE_UMBRAL_CARGA = 0.35; //% de la altura total del scroll para disparar carga
442442

443443
export function registrar_scroll_usuario() {
444444
const chatCuerpo = document.querySelector("#cuerpo-mensajes-chat")
@@ -455,36 +455,36 @@ export function registrar_scroll_usuario() {
455455
let rachaScroll = 0;
456456
let ultimoScrollTime = 0;
457457
let ultimaDireccion = 0;
458-
458+
const max_rachaScroll = 8;//evitar que el numero aumenten indefinidamente
459459
chatCuerpo.addEventListener("wheel", (e) => {
460460
if (e.ctrlKey) return;
461-
461+
462462
const ahora = Date.now();
463463
const direccionActual = Math.sign(e.deltaY);
464-
465-
// Detectar si es un scroll continuado en la misma dirección (intervalo de 150ms)
466-
if (ahora - ultimoScrollTime < 300 && direccionActual === ultimaDireccion) {
467-
rachaScroll++;
464+
465+
// Detectar si es un scroll continuado en la misma dirección (intervalo de ms)
466+
if (ahora - ultimoScrollTime < 400 && direccionActual === ultimaDireccion) {
467+
if (rachaScroll < max_rachaScroll) rachaScroll++;
468468
} else {
469469
rachaScroll = 0;
470470
}
471-
471+
472472
ultimoScrollTime = ahora;
473473
ultimaDireccion = direccionActual;
474474

475-
// Si hay racha (>=3), aplicamos un boost del 10% (1.1)
476-
const boost = rachaScroll >= 3 ? 1.2 : 1.0;
475+
// aplicamos un boost del 10% (1.1)
476+
const boost = rachaScroll >= 8 ? 2 : rachaScroll >= 3 ? 1.2 : 1.0;
477477
//amortizacion del scroll->cuanto mas pequeño mas frena
478-
const factor = rachaScroll >= 3 ? 0.5 : 0.4;
479-
478+
const factor = rachaScroll >= 8 ? 1.0 : rachaScroll >= 3 ? 0.5 : 0.4;
479+
480480
let delta = e.deltaY;
481-
481+
482482
// Manejar diferentes modos de delta (0: pixels, 1: lines, 2: pages)
483483
if (e.deltaMode === 1) delta *= 33;
484484
else if (e.deltaMode === 2) delta *= chatCuerpo.clientHeight;
485485

486486
chatCuerpo.scrollTop += delta * factor;
487-
487+
488488
if (e.cancelable) e.preventDefault();
489489
marcar();
490490
}, { passive: false });

0 commit comments

Comments
 (0)