Weblog

Apaño de scroller dhtml de Aaron Boodman (ypSimpleScroll)

Os presento un apaño que hice para la web de mtv españa durante el mes de mayo de 2004. Necesitábamos un scroller dhtml que funcionase con flechas, con soltar y arrastrar, y además fuese compatible con el explorer de mac. No había manera de encontrar uno que cumpliese todos los requisitos, así que pillé el ypSimpleScroll de Aaron Boodman y lo modifiqué mezclándolo con su script de soltar y arrastrar.

El script degrada perfectamente en (casi) todos los navegadores, aunque por lo visto en Opera casca y no degrada bien porque aplica el script a medias. No me he entretenido en buscar el fallo, si alguien tiene tiempo puede enviarme un email. Os dejo con un ejemplo del script usando texto de mi página de utilidades.

Inicio del ejemplo uno

Javascript es una capa diferente de la capa estilos y la capa estructural, y al igual que el CSS, debería ser prescindible, de manera que sin el uso de esta tecnología la página debería ser accesible y navegable. Si el navegador no sabe interpretar el código simplemente no lo ejecutará pero los contenidos seguirán siendo accesibles. Esto es lo que se conoce como degradación del script. Ya entrando en materia, ¿qué hace que un código sea no intrusivo?

  1. Mezcla con la estructura: principalmente, que no se mezcla el contenido de la página con el comportamiento del script. Esto significa que no habrá eventos intrinsecos en el documento y además que el script estará situado en un archivo .js aparte
  2. Inicialización: lo ideal es que el script se inicialice automáticamente al cargar la página
  3. Asignar acciones con un manejador de eventos: puesto que hemos evitado el uso de eventos intrinsecos vamos a necesitar algún modo para asociar acciones (ejecutar funciones) a eventos capturados por distintos elementos de una página
  4. Compatibilidad: los navegadores que no entiendan el código deben prescindir de éste sin devolver mensajes de error.
  5. Detección de capacidades: para que lo anterior suceda usaremos detección de objetos en lugar de detección de navegadores

Final del ejemplo uno.

Como vereis a continuación también hice una modificación para poder tener más de un scroller en cada página, incluso con tamaños distintos, porque era otro de los requisitos de la web. Para eso me creé unas funciones que añadían un contador a un vector, donde pasábamos como argumentos el índice del vector y los tamaños que debía tener ese scroller. El script se encarga del resto.

Inicio del ejemplo dos

Tabla de contenidos a partir de títulos (TOC)

Este script lee todos los nodos del documento y guarda en una variable la estructura jerárquica de los títulos de secciones de una página, mostrándolos en una lista indentada acorde a ese órden. Las secciones de la lista son enlaces a las secciones reales de la página, usando el id de los elementos (si no existe se crea automáticamente).

Descarga toc
Validador de formularios

Este script lee todos los campos de texto de un formulario y si encuentra una clase "required" hace que ese campo deba ser llenado antes de enviar el formulario al servidor. En caso contrario te avisa de forma visual y con un alert. Si el campo se denomina email obliga mediante una expresión regular a usar un correo válido.

Descarga validador

Final del ejemplo dos.

Creo que es bastante fácil de implementar. Necesitais:

Descarga el script en formato rar

Una vez hecho esto el script se encarga del resto. Ah, podeis bajaros el script con todos los archivos en formato rar desde aquí

Comentarios sobre esta entrada

  1. 2004-10-17 04:02:12

    An excellent work, really. That kind of things you'd like to view a Sunday morning. Very well done, mate!.

  2. 2004-10-30 03:59:35

    que poca madre!!! hermoso y hasta lo haces parecer simple... un día quiero llegar a ser como vos... si, raúl como no... a ti lo único que te gusta es la cerveza ;)
  3. 2005-02-03 07:31:02

    • david medina
    • [e]
    no logro encontrar donde se especifican los pixels que puede scrollear la barra del thumb. Es decir yo ahora tengo una caja que hace 250 x 250 pero la barra que scrolea solo me baja hasta 210 y necesito que baje hasta 250, evidentemente un saludo,
  4. 2005-03-16 11:28:54

    Grata sorpresa: El scroll funciona perfectamente en Opera 7.5 bajo windows 2000.
  5. 2005-04-03 11:08:42

    Hello guys, I am currently running in trouble with the script from http://meddle.dzygn.com/eng/weblog/scroller.mod/. The root area in my applicatipon is something about 600x400 px big. I would like to disable the scroller if I have only a few lines to display. For now the scroller is enabled to any point of time even if there is no content in it. This confuses the users somehow and I got requests to change this. Is it something big or is there an elegant way to manage this. Thanks rtg
  6. 2005-04-21 12:13:11

    Muchas gracias!!! tras horas de búsqueda y desespero por fín encuentro una aplicación práctica, sencilla y de fácil personalización... Muchas gracias por facilitarnos el trabajo a tantos...
  7. 2005-05-18 08:22:06

    Fantástico!! Creo que es lo más simple que he visto jamás. Me has ahorrado muchas horas de estudio. A partir de ahora seguiré tu página con interés.
  8. 2005-06-26 06:39:58

    • francisco alejandro barrea
    • [e]
    disculpa soy nuevo y no entendi nada me interesa mucho saver como se ase de una manera ya desarrolada y solo copiarla en el block de notas
  9. 2005-06-26 06:41:46

    • francisco
    • [e]
    me lo podrias mandar a mi mail o ponerlo aqui
  10. 2005-08-04 07:27:47

    Hola. El script me ha parecido muy util ya que es una forma sencilla de hacer un scroll, que es lo que andaba buscando. Lo único, es que me ha parecido un poco lioso definir las propiedades ya que a veces marcan la pauta las css y otras el js. Una cosa que no he logrado es que el texto desaparezca antes de llegar al borde superior y que aparezca un poco antes del borde inferior. Es decir, que igual que queda un margen izquierda-derecha quede un margen arriba-abajo, pero siempre, no solo al inicio. He estado tocando todo lo que se ma ocurrido pero no lo he conseguido. ¿me dirias como se hace?. Venga, un saludo y buen trabajo
  11. 2005-08-04 13:17:51

    Hola Iñaki, En setiembre colgaré una nueva version que tengo medio terminada, a falta de depurar unos pequeños detalles. Ahi se puede modificar muchas mas cosas. Si te puedes esperar a mediados de setiembre... un saludo Sergi

  12. 2005-10-05 04:44:35

    • Diego González
    • [e]
    Hola, muy bueno este script. Solo tengo un problemilla ya que quiero utilizarlo para una pagina que recoge datos de la base de datos y resulta que si el contenido no rellena toda la caja del scroll, me da un error de javascript. Me gustaría saber si esto es así siempre o es que he hecho yo algo mal. Gracias.

Cerrado

Debido a la mierda de spam este weblog queda cerrado a comentarios, era imposible mantener el script de la lista negra al día. Si quieres busca mi email y enviame un mensaje. Lo siento.

Cambia las preferencias

Cambia las preferencias

Licencia

Creative Commons 2001-2004. Sergi Meseguer

Sindicación RSS

rss (1, 2 ), xhtml, css, taw