Actualmente tengo una función que desplaza la tabla una vez que se activa a través de onClick. El desplazamiento se mueve de arriba hacia abajo en un ciclo de repetición.
La función es la siguiente:
elemento dom: ref.actual adjunto a la tabla
objetivo: altura total de la mesa en px
duración: velocidad de desplazamiento
scrollForTopBottom(dom-element, target, duration)Ahora, si doy la duración = 2000, la mesa llegará al fondo en 2 segundos, pero quiero que vaya lento. Intenté configurar la duración = objetivo (px) * 20, pero eso crearía un problema cuando el objetivo (altura de desplazamiento) es demasiado largo y se desplazará muy lentamente. Lo mismo para el objetivo (altura de desplazamiento) cuando no es demasiado largo.
¿Supongo que tengo que establecer la fórmula de duración inversamente proporcional al objetivo (altura de desplazamiento)?
No tengo idea de cómo hacerlo. Espero no haber hecho la pregunta compleja.
Lo resolví. El código para scrollForTopBottom() se toma básicamente de aquí, lo que brinda la capacidad de ingresar la duración del desplazamiento mediante la técnica de interpolación. Modifiqué la técnica de interpolación para que solo regrese en movimiento lineal.
en el codigo
scrollForTopBottom(dom-element, target, duration) aplicando duración = element width or height * some constant me dio el resultado deseado ya que hay múltiples instancias de tabla en mi componente de reacción. Entonces, cada tabla se desplazará de manera diferente según su altura/ancho