En el YUI 3 Galería: El módulo de carrusel

13 de diciembre 2010 a las 11:53 am por Gopal Venkatesan y Frank Fabian | En Desarrollo , la Galería de YUI 3 | 16 comentarios

Sobre los autores: Gopal Venkatesan ( @ g13n ) trabaja para Yahoo! en Bangalore, donde es uno de los decanos de la comunidad de ingeniería frontend, Gopal ha sido el ingeniero jefe de la YUI 2 Carrusel proyecto desde la liberación 2.6.0. Él es también el autor de la nueva YUI 3 Galería Carrusel módulo. Fabián Frank proviene de Alemania y trabaja para Yahoo! en Pekín, Fabián ha sido con Yahoo desde que terminó su Maestría de Investigación de la Universidad de Glasgow.

¿Qué es un carrusel?

Un control de Carrusel proporciona un widget para la navegación entre un conjunto de objetos, como dispuestas horizontal o verticalmente en una región sobrecargada la página. El "carrusel", la metáfora se deriva de una analogía para deslizar los carruseles en los días de fotografía de la película, el control del carrusel puede mantener la fidelidad a esta metáfora, permitiendo una navegación continua y circular a través de todos los bloques de contenido.

El Carrusel es parte de una familia de widgets que permiten la "sobrecarga", un espacio en la página, ofreciendo más contenidos para que el espacio del que cabe dentro de sus dimensiones la vez que proporciona un mecanismo sencillo e intuitivo para el usuario de descubrir y navegar por el contenido adicional . Acordeones, aquí, árboles y ScrollViews son otros ejemplos de este género.

¿Por qué otro control de Carrusel?

YUI 3 necesita una sólida y rica en Carrusel (como hemos hecho en YUI 2 ). El objetivo de diseño para este carrusel era hacer que lo apoye y limpiar y agregar configuraciones adicionales a través de plugins, aprovechándose de YUI 3 ' s de apoyo para la modularidad intrínseca para conservar la ligereza y la velocidad.

YUI 3 Widget Marco

Una de las mayores ventajas de escribir controles personalizados utilizando YUI 3 es el marco Widget (más información sobre el marco Widget: la guía del usuario , en profundidad la introducción de vídeo ). Comparando el Carrusel en YUI 2.8.2 a mi YUI 3 Galería Carrusel , el YUI versión 3 es simple y elegante. Esto se debe a la mayor parte del trabajo pesado con respecto al suministro de la fundación proporciona un conjunto común de atributos del widget, un ciclo de vida disciplinada, el apoyo a la mejora progresiva, etc vienen con la clase Widget.

El marco Widget YUI 3 también proporciona un consistente patrón MVC, que promueve cada widget para adoptar los métodos de separación de Estado frente a otros métodos de actualización de la interfaz de usuario. Esto hace que el código muy limpio y fácil de mantener. De hecho, este es uno de los factores importantes por las que el YUI 3 Carrusel es mejor que su anterior YUI 2-basado primo.

El YUI 3 Plugin modelo permite a los desarrolladores añadir nuevas funcionalidades o modificar el comportamiento existente en objetos. Esto permite agregar funcionalidad adicional en la parte superior del carrusel para sacar de forma dinámica elementos a través de Ajax, etc Por lo tanto, el carrusel de YUI 3 no tiene código de la animación se cocía en él, pero en cambio han creado un plugin que añade soporte de animación para los casos donde se necesita . Esto ayuda a mantener el componente de peso muy ligero.

Un carrusel de galería para su propio sitio web

Después de leer acerca de lo que un carrusel es y cómo puede ayudarle a mejorar su sitio web, que esperamos se sienten dispuestos a ensuciarse las manos. No te preocupes, con nuestra YUI extensión de 3 Galería Carrusel, la aplicación de un carrusel en su sitio web es tan sencillo como proporcionar una lista con viñetas en HTML. Eso no es sólo un argumento de venta - que es la forma en que se ha integrado recientemente un carrusel en la Galería de Yahoo! Search Deportes Página de resultados.

Un ejemplo sencillo

Comencemos con un ejemplo sencillo que cubrirá casi todo lo que necesitas saber. La forma más fácil para que usted pueda utilizar la nueva Galería Carrusel es dejar que YUI 3 automágicamente se carga desde la red de Yahoo de entrega de contenido. Recordando lo que un carrusel es decir, una lista desplazable de elementos, creamos una lista en HTML. Se incluye la lista en un div, que permite a nuestro JavaScript para encontrar y trabajar con él. Si ya dispone de algunos datos que se representa de una manera similar a la lista en el marcado, es posible que también acaba de poner el div carrusel alrededor de ella y poner a prueba tu suerte! Es muy importante decir que, a pesar de que está utilizando una imagen de ejemplo aquí, usted puede utilizar para la Galería Carrusel todo lo que quieras!

  <div class="carousel" id="contenedor">
   <ol>
     <li> <img src="img/c1.jpg"> </ li>
     <li> <img src="img/c2.jpg"> </ li>
     <li> <img src="img/c3.jpg"> </ li>
     <li> <img src="img/c4.jpg"> </ li>
     <li> <img src="img/c5.jpg"> </ li>
     </ Ol>
 </ Div> 

Ahora que tenemos nuestros datos para trabajar, queremos mejorar el aspecto, mostrando los cinco elementos con el widget de Carrusel. Suponiendo que usted ya está usando YUI 3 es una tarea sencilla. La única cosa que es posible que no haya visto antes, dependiendo de la profundidad que han estado cavando en YUI 3 y la Galería en el pasado, es que estamos especificando una versión de la Galería de forma explícita. Esto es necesario porque estamos usando un nuevo widget, que no está incluido en la Galería de construir ese gestor de YUI intenta cargar de forma predeterminada. Sin embargo, como YUI y YUI Galería madura, esto no será necesario hacer eso en el futuro cuando el valor por defecto el número de compilación se ha incrementado.

  YUI ({gallery: la galería-20.10.2010-19-33 '})
  . Uso ("galería carrusel", "galería carrusel anim", "sustituto", la función (y) {
   var = nuevo carrusel de Y.Carousel ({boundingBox: "# contenedor",
    contentBox: "contenedor # ol>"});
   carousel.plug (Y.CarouselAnimPlugin, {animación: {velocidad: 0.7}});
   carousel.render ();
 }); 

(Por cierto, si usted está interesado en obtener material nuevo se puede visitar el repositorio de YUI 3 Galería en github o tenedor Gopal , donde desarrolla Carrusel. Si usted encuentra un error, siempre estamos encantados de oír hablar de eso.)

Volviendo a nuestro ejemplo ... YUI lo tomará de aquí. El cargador extrae automáticamente Galería Carrusel y sus dependencias desde la red de Yahoo de entrega de contenido. Después de eso, el carrusel se inicializa y se muestra. El usuario puede hacer clic en la flecha izquierda o derecha para desplazar la imagen. Por favor, perdóname por traer una línea de una complejidad innecesaria, pero no me pude resistir. Yo Y.CarouselAnimPlugin a dejar que nuestro carrusel de diapositivas sin problemas de una página a otra en lugar de sólo mostrar la página siguiente instante. Siéntase libre para jugar con el parámetro de velocidad si lo desea.

Como se puede ver en la imagen anterior, el carrusel está en marcha. Sin embargo, la CSS no podría encajar muy bien en el resto de tu página. Esto nos lleva a nuestra siguiente sección, donde vamos a discutir cómo personalizar Galería Carrusel.

Personalización de la Galería Carrusel

Ahora que usted tiene su carrusel en marcha y se identificaron un caso de uso para su sitio web, que esperamos para poder integrarse a la perfección. Como se mencionó anteriormente, lo hicimos por nuestra página de resultados de búsqueda Deportes. Si desea aumentar el número de elementos visibles, por ejemplo, de tres a cuatro, puede hacerlo mediante la modificación de la línea que crea una instancia del carrusel.

  var = nuevo carrusel de Y.Carousel ({boundingBox: "# contenedor",
  contentBox: "contenedor # ol>", numVisible: 4}); 

Todavía no lo suficientemente bueno? Sí, claro. Por suerte CSS nos permite añadir nuestras propias definiciones de estilo e incluso sobrescribir los iniciales sin tocar ningún CSS existente. Así que su primer paso probablemente será la eliminación de las fronteras, porque son bastante molestas. Sólo tiene que añadir el siguiente CSS para el encabezado de página.

  . YUI 3-carrusel {
   la frontera: no importante;
 }
 . YUI 3-carrusel-nav {
   de fondo: no importante;
 }
 . Carrusel ol li {
   la frontera: no importante;
 } 

Ahora, que se ve mejor. También he utilizado un margen negativo de reducir la brecha entre mi y el carrusel de la partida. Sin embargo, aún no estamos completamente allí. Supongo que usted también desea utilizar sus propios botones personalizados, que se integran perfectamente en el diseño de la página. Para este ejemplo vamos a utilizar los mismos botones que se utilizan también en las páginas de Yahoo de resultados de búsqueda. Esto requiere un poco más, pero sigue siendo sencilla, de CSS.

  . YUI 3-carrusel botón {
   de fondo: url ("sprite_button.png") no-repeat scroll 0 0 transparentes importante;
   altura: 20px importante; ancho:! 28px importante;
 }
 . YUI 3-carrusel-nav-elemento {
   de fondo: url ("sprite_button.png") no-repeat scroll 0 0 transparentes importante;
   ! background-position: 0-133px importante;
 }
 . YUI 3-carrusel de primer botón {
   ! background-position: 90px 0-importante;
   margin-right: 35px importante;
 }
 . YUI 3-carrusel de primer botón-disabled {
   ! background-position: 60px 0-importante;
   margin-right: 35px importante;
 }
 . YUI 3-carrusel-next-botón {
   ! background-position: 30px 0-importante;
 }
 . YUI 3-carrusel-button-disabled {
   background-position: 0 0 importante;!
 }
 . YUI 3-carrusel-nav-elemento seleccionado {
   ! background-position: 0-121px importante;
 } 

Dejaremos a la de hoy y espero que te sientas listo para comenzar. Al menos eso era todo lo que necesitábamos. Sin embargo, dependiendo de cuán grande es su sitio y cómo interesado está usted en su desempeño, hay ideas generales sobre la carga de algo de una red de distribución de contenidos de terceros que también se aplican aquí. Por ejemplo, Sidnei da Silva expuesto algunas ideas interesantes en su blog a principios de este mes. Estaríamos encantados de proporcionar a ¿Para que explica cómo un widget YUI y sus dependencias se pueden mover a su propio sitio web o red de distribución, incluso el contenido, por lo que son capaces de mantener el número de peticiones HTTP un precio tan bajo como sea posible. Háganos saber si usted está interesado, esperamos sus comentarios!

Más para explorar en la Galería

El excelente equipo de Eduardo Lundgren y Nate Cavanaugh de Liferay tiene un componente del carrusel en la Galería y - sin duda vale la pena ver si estás en el mercado para este tipo de control.

Compartir y ampliar: Marcar página con del.icio.us | Digg It! | reddit!

16 comentarios

  1. Hola Gopal, Fabián,

    Gran trabajo y gran post!

    Siendo un fan YUI3 Hace poco construí mi propio carrusel en lugar de utilizar el de YUI2.

    Tengo una pregunta. A mí me parece que un carrusel a menudo pueden desempeñar un papel secundario en un widget más grande como una presentación de diapositivas. Sería muy bueno para ver cómo su nuevo módulo podría ampliarse para este propósito. ¿Tiene algún ejemplo? Sería muy bueno ver a un seguimiento posterior.

    Hasta entonces, espero poder tener una obra de teatro.

    Saludos,
    Marca

    Comentario por Marcos - 13 de diciembre 2010 #

  2. Hola Gopal y Fabián,
    Así como se recomienda "... es posible que también acaba de poner el div carrusel alrededor de ella y poner a prueba tu suerte!" Lo hice. Incluso luchó por un tiempo probando el código de diferentes maneras. El resultado no funciona, no tiene sentido.
    Por lo tanto, por favor, en lugar de escribir un anuncio largamente sobre lo maravilloso que es el carrusel, ¿podrías dar un ejemplo simple de trabajo, por favor.
    Porque no podemos absolutamente "ver en la captura de pantalla anterior, el carrusel está funcionando." (Incluso con un gif o un video que no podría).
    Tengo que insistir. Me encanta usar yui3 y creo que están haciendo daño a esta biblioteca muy buena, proporcionando extensiones no debidamente documentados, sin demostración. Es frustrante para el usuario.
    Codificación no es magia, dejar de tratar de engañarnos por el bien de todos.

    Gracias
    Matthieu

    Comentario por Matth - 07 de enero 2011 #

  3. Gran, así que gracias a un usuario anónimo (sdeva), aquí es un ejemplo de código se puede copiar / pegar para jugar con el plugin de carrusel:

    YUI ({gallery: la galería-20.10.2010-19-33 '}) el uso ("galería carrusel", "galería carrusel anim", "sustituto", la función (Y) {.
    Y.on ("disponibles", function (e) {
    var = nuevo carrusel de Y.Carousel ({boundingBox: "# contenedor", contentBox: "# container ol>"});
    carousel.plug (Y.CarouselAnimPlugin, {animación: {velocidad: 0.7}});
    carousel.render ();
    }, "Contenedor #");
    });

    Comentario por Matth - 07 de enero 2011 #

  4. Lo sentimos, vamos a intentarlo con las entidades:
    <html>
    <head>
    <script type="text/javascript" src="http://yui.yahooapis.com/3.2.0/build/yui/yui-min.js"> </ script>
    <Link rel = "stylesheet" type = "text / css"
    . Css "/>
    </ Head>
    <body class="yui3-skin-sam">
    <div class="carousel" id="contenedor">
    <ol>
    <li> <img src="http://static.flickr.com/5006/5265039009_f92b60ffc6_m.jpg"> </ li>
    <li> <img src="http://static.flickr.com/5163/5265038529_b35a4f497e_m.jpg"> </ li>
    <li> <img src="http://static.flickr.com/5008/5265644686_712fde3f34_m.jpg"> </ li>
    <li> <img src="http://static.flickr.com/5241/5265037365_8679d00d49_m.jpg"> </ li>
    </ Ol>
    </ Div>
    </ Body>
    <script type="text/javascript">
    YUI ({gallery: la galería-20.10.2010-19-33 '}) el uso ("galería carrusel", "galería carrusel anim", "sustituto", la función (Y) {.
    Y.on ("disponibles", function (e) {
    var = nuevo carrusel de Y.Carousel ({boundingBox: "# contenedor", contentBox: "# container ol>"});
    carousel.plug (Y.CarouselAnimPlugin, {animación: {velocidad: 0.7}});
    carousel.render ();
    }, "Contenedor #");
    });
    </ Script>
    </ Html>

    Comentario por Matth - 07 de enero 2011 #

  5. Hola Matth,

    muchas gracias por sus comentarios y gracias por dar un ejemplo la Galería. Estoy de acuerdo en que nos olvidamos de eso y que debería haber previsto eso. Nos aseguraremos de dar un ejemplo práctico pequeño, idealmente como un archivo descargable. Html, la próxima vez. Me alegro de que tienes un ejemplo de trabajo ahora y que cuando lo compartiste con nosotros. Gracias por ayudarnos a mejorar las cosas! :-)

    Pero también tengo que decir que no quería engañar a nadie a usar o publicitar nuestro módulo. Hemos proporcionado enlaces a implementaciones alternativas en la parte inferior de este puesto y estamos muy bien con todo el mundo la elección de su favorito. Tenga en cuenta también que nuestro carrusel no es parte oficial de YUI 3, sino una extensión siempre utilizando la Galería de YUI.

    Mis mejores deseos,
    Fabián

    Comentario por Fabián Frank - 09 de enero 2011 #

  6. El ejemplo anterior podría no funcionar.
    Los estilos son completamente generados del gancho cuando las imágenes no se cargan antes de la secuencia de comandos se ejecuta.
    Por lo tanto, disparar el evento en domready en lugar de disposición.

    + - Y.on ("disponibles", function (e) {

    Et voilà.

    Comentario por Matth - 11 de enero 2011 #

  7. cuando intento el ejemplo primero se muestra como elementos de la lista 1. 2. 3. 4. y después de terminar de cargar el Inicializar carrusel, es así como debe ser?

    Comentario por Sela - 25 de enero 2011 #

  8. Hola Sela,

    Sí, esto es una mejora progresiva.
    http://en.wikipedia.org/wiki/Progressive_enhancement

    Un cordial saludo,
    Fabián

    Comentario por Fabián Frank - 10 de febrero 2011 #

  9. Si bien es bueno para mostrar el código simplificado, por favor no se olvide de agregar atributos alt a cada una de sus imágenes. Los lectores de pantalla todavía se reconocen en el carrusel de imágenes, así que vamos a darles una buena experiencia.

    Comentario por Ted Drake - 13 de febrero 2011 #

  10. Hi guys. Gracias por esto. Tengo unas cuantas preguntas. Cuando se carga por primera vez, se muestra como una lista ordenada luego entra en el cuadro de formato. ¿Hay alguna forma para evitar esto?

    Soy nuevo en esto, y yo quería saber si puedo cambiar o personalizar la piel, y si es así ¿cómo puedo hacer esto?

    Gracias!

    Comentario por seeker7805 - 14 de marzo 2011 #

  11. Hola seeker7805,

    por favor, mira mis respuestas anteriores para obtener información de un poco mas sobre esto. Usted tendría que entregar al menos el CSS en la cabeza de su documento HTML para que se vea como un carrusel de inmediato y luego el Javascript sólo agrega los botones de desplazamiento.

    Un cordial saludo,
    Fabián

    Comentario por Fabián Frank - 14 de marzo 2011 #

  12. Hola seeker7805,

    Puede configurar el contenedor de Carrusel "yui3-carrusel de carga", que se oculta el carro hasta que se vuelve por completo.

    Esto es común para todos los YUI 3 widgets.

    http://developer.yahoo.com/yui/3/widget/ # hidingmarkup

    He aquí cómo usted puede hacer para el widget de Carrusel:


    YUI ({
    / / Galería de última generación de este módulo
    Galería: "Galería-23.02.2011-19-01"
    }). Uso ("galería carrusel", "sustituto", la función (y) {
    Y.on ("domready", function () {
    var = nuevo carrusel de Y.Carousel ({boundingBox: "# contenedor",
    contentBox: "contenedor # ol>", numVisible: 2});
    carousel.render ();
    });
    });

    Espero que esto ayude.

    Un cordial saludo,
    Gopal Venkatesan

    Comentario por Gopal Venkatesan - 15 de marzo 2011 #

  13. Muchas gracias Fabián!
    Gracias Gopal!

    Comentario por seeker7805 - 16 de marzo 2011 #

  14. Hola Fabian y Gopal:

    He implementado los cambios pero, obviamente, me debe estar haciendo algo mal:

    http://inetwebdesign.com/YUI3_carousel4.html

    El refresco, que sigue mostrando la lista ordenada.

    ¿Quieres publicar el código? Yo no quiero tapar el espacio aquí.

    Un cordial saludo,
    seeker7805

    Comentario por seeker7805 - 16 de marzo 2011 #

  15. Hola,

    si pongo los enlaces dentro del carrusel que no funcionan. ¿Es este el comportamiento de intención?

    Comentario por Luka - 20 de julio 2011 #

  16. Hola Luka,

    A partir de ahora las golondrinas del carrusel de los eventos de clic, ya sé que no es una buena experiencia. ¿Se puede presentar un boleto voy a arreglar esto.

    Comentario por Gopal Venkatesan - 21 de julio 2011 #

Disculpa, los comentarios están cerrados en este momento.

Presentado por Yahoo!

Copyright © 2006-2012 Yahoo! Inc. Todos los derechos reservados. Política de privacidad - Condiciones del servicio

Desarrollado por WordPress en Yahoo! Web Hosting .