Desplazamiento suave para screencasts

Supongamos que desea desplazarse una página web de arriba a abajo mediante programación. Por ejemplo, estás grabando un screencast y quieres un bonito desplazamiento de página completa. Probablemente no puedas desplazarte tú mismo porque estará todo desigual y entrecortado. El nativo de JavaScript puede realizar un desplazamiento fluido. Aquí hay un pequeño fragmento que podría serle útil:

window.scrollTo({  top: document.body.getBoundingClientRect().height,  behavior: 'smooth'});

¡Pero no hay manera de controlar la velocidad o la atenuación de eso! Es probable que sea demasiado rápido para una captura de pantalla. Sin embargo, encontré un pequeño truco, publicado originalmente por (creo) Jedidiah Hurt.

El truco consiste en utilizar transformaciones CSS en lugar del desplazamiento real. De esta manera se puede controlar tanto la velocidad como la relajación. Aquí está el código que limpió un poco:

const scrollElement = (element, scrollPosition, duration) = {    // useful while testing to re-run it a bunch.  // element.removeAttribute("style");     const style = element.style;  style.transition = duration + 's';  style.transitionTimingFunction = 'ease-in-out';  style.transform = 'translate3d(0, ' + -scrollPosition + 'px, 0)';}scrollElement(  document.body,   (    document.body.getBoundingClientRect().height    -    document.documentElement.clientHeight    +    25  ),  5);

La idea es transformar una posición superior negativa para la altura de todo el documento, pero restablecer la altura de lo que puedes ver para que no se desplace demasiado. Hay un pequeño número mágico ahí que quizás tengas que ajustar para que sea perfecto para ti.

Aquí hay una película que grabé de esa manera:

Ver una demostración

Otra posibilidad es un poco de moda jQuery .animate(), que se puede ampliar con alguna flexibilización personalizada. Aquí hay una demostración de eso.

SUSCRÍBETE A NUESTRO BOLETÍN 
No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion