Scroll automático en una capa con javascript
Necesitábamos un medio rápido y fácil de utilizar para crear un scroll automático en un elemento div. Después de haber visto algunas soluciones ya hechas nos dimos cuenta de que la personalización de las mismas nos iba a dar más trabajo que escribir nuestra propia solución.
Pensamos que sería mejor disponer de un objeto javascript con el que pudiéramos indicar sobre qué capa hacer scroll, independientemente del contenido que tuviera.
La idea era poder hacer
scroll = new Scroll(’mi_capa’, 1);
donde mi_capa es el id asignado a la capa sobre la que hacer scroll y 1 es la velocidad del scroll.
La solución puede verse en el lab.
El código del ejemplo para descargar, aquí.
Hola! Estoy intentando implementar el scroll que habéis desarrollado y en Internet Explorer 8 y Firefox funciona correctamente, pero en IE7 el scroll se sale de la capa. ¿Sabéis porqué sucede esto?
Enhorabuena por el scroll. Un saludo!
Comment by jmbarra78 — May 25, 2009 @ 6:36 pm
Gracias jm!
Hemos probado el scroll en IE6, IE7 e IE8, además de Ff, Opera y Chrome y nos funciona bien.
Sin embargo, pueden aparecer problemas cuando el scroll convive en un diseño de capas muy abigarrado. En esos casos, coloca el siguiente estilo a la capa sobre la que haces el scroll:
style=”position: relative;”
Con esto debería funcionar correctamente.
Un saludo y gracias por pasarte por aquí!
Comment by Rafa — May 25, 2009 @ 6:44 pm
Hola!
Gracias por la respuesta, el scroll me funciona correctamente y es muy suave, pero ¿habría alguna forma de disminuir la velocidad? He probado el valor más bajo en la llamada de la función (1) pero sigue siendo muy rápido. Le he puesto decimales pero funciona de forma incorrecta o directamente no hace el scroll.
Un saludo y gracias por todo.
Comment by jmbarra78 — May 26, 2009 @ 2:08 pm
Lo siento, pero 1 es la velocidad mínima que le hemos puesto. Concretamente 1px de desplazamiento cada vez.
lo que sí puedes hacer es, manteniendo esa misma velocidad, áumentar el timer en
window.setTimeout(function() {
_self.scroll();
}, 30);
dándole 500 milisegundos, por ejemplo. Sería mucho más lento.
Comment by Rafa — May 26, 2009 @ 2:11 pm
Muchas gracias por el código. El scroll funciona a la perfección.
¿Sería posible hacer que el texto apareciera de izquierda a derecha?
Comment by alex — June 25, 2009 @ 9:27 am