@@ -438,7 +438,7 @@ async function _insertar_mensaje_dom({ html, fecha, id_chat_str, id_emisor, id_m
438438
439439let _usuario_scrolleando = false ;
440440let _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
443443export 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