AMP

amp-lightbox

 
You can now use this component outside valid AMP documents using the Bento version of this component. Learn more in the Bento guide.

Description

Muestra elementos en modo lightbox con viewport completo.

 

Required Scripts

<script async custom-element="amp-lightbox" src="https://cdn.ampproject.org/v0/amp-lightbox-0.1.js"></script>

Supported Layouts

Descripción Muestra elementos en modo lightbox con viewport completo.
Secuencia de comandos obligatoria <script async custom-element="amp-lightbox" src="https://cdn.ampproject.org/v0/amp-lightbox-0.1.js"></script>
Diseños admitidos nodisplay
Ejemplos Consulta el ejemplo de amp-lightbox de AMP By Example.

Comportamiento

El componente amp-lightbox define los elementos secundarios que se muestran en una superposición o en un modo de viewport completo. Cuando el usuario toca o hace clic en un elemento (p. ej., un botón), el ID de amp-lightbox al que se hace referencia en el atributo on del elemento que ha recibido el clic activa el lightbox; este ocupa todo el viewport y muestra los elementos secundarios de amp-lightbox.

Al pulsar la tecla Esc del teclado se cierra el lightbox. Otra posibilidad es definir el atributo on en uno o varios elementos del lightbox y definir su método en close para cerrar el lightbox cuando se toque el elemento o se haga clic en él.

<button on="tap:quote-lb">See Quote</button>
<amp-lightbox id="quote-lb" layout="nodisplay">
  <blockquote>"Don't talk to me about JavaScript fatigue" - Horse JS</blockquote>
  <button on="tap:quote-lb.close">Nice!</button>
</amp-lightbox>

Para mostrar imágenes en un lightbox, también tienes el componente <amp-image-lightbox>.

Atributos

animate-in (opcional) Define el estilo de la animación para abrir el lightbox. De forma predeterminada, se definirá en fade-in. Los valores válidos son fade-in , fly-in-bottom y fly-in-top.

Nota: Los valores predefinidos de animación de fly-in-* modifican la propiedad transform del elemento amp-lightbox. No transformes el elemento amp-lightbox directamente. Si necesitas aplicar una transformación, defínela en un elemento anidado.
close-button (obligatorio en los anuncios AMP HTML) Muestra un encabezado de botón de cierre en la parte superior del lightbox. Este atributo solo es obligatorio y válido para los anuncios AMP HTML.
id (obligatorio) ID único del lightbox.
layout (obligatorio) Se debe definir en nodisplay.
scrollable (obligatorio) Si el atributo scrollable está presente, el contenido del lightbox se puede desplazar cuando hay altura adicional en el lightbox.

Nota: Cuando se usa <amp-lightbox> en un anuncio AMP HTML, el atributo scrollable no está permitido. Para obtener más información, consulta la sección sobre el uso de amp-lightbox en anuncios AMP HTML.
scrollable (obligatorio)

Estilo

Puedes aplicar estilo a amp-lightbox con CSS estándar.

Acciones

El componente amp-lightbox muestra las acciones que se pueden activar con AMP on-syntax:

Acción Descripción
open (predeterminado) Abre el lightbox.
close Cierra el lightbox.

Usar amp-lightbox en anuncios AMP HTML

El componente amp-lightbox para anuncios AMP HTML está en fase experimental porque se está desarrollando. Para utilizar amp-lightbox en anuncios AMP HTML, habilita el experimento amp-lightbox-a4a-proto.

Existen algunas diferencias entre usar amp-lightbox en documentos AMP normales y en anuncios escritos en AMP HTML:

El atributo close-button es obligatorio

En los anuncios AMP HTML se debe incluir el atributo close-button. Con este atributo, los encabezados se muestran en la parte superior del lightbox. El encabezado, que contiene un botón de cierre y una etiqueta que indica "Anuncio", se necesita para lograr los siguientes objetivos:

  • Ofrecer una experiencia de usuario coherente y predecible para los anuncios AMP HTML.
  • Asegurarse de que el lightbox siempre tenga un punto de salida; de lo contrario, la creatividad podría interceptar el contenido del documento host a través de un lightbox.

El atributo close-button es obligatorio y solo se permite en anuncios AMP HTML. En los documentos AMP normales, se puede mostrar un botón de cierre donde lo necesites como parte del contenido de <amp-lightbox>.

No se permite usar lightboxes desplazables

No se permite usar lightboxes desplazables en los anuncios AMP HTML.

Fondo transparente

Si usas <amp-lightbox> en anuncios AMP HTML, el fondo del elemento <body> se vuelve transparente porque el tiempo de ejecución de AMP cambia el tamaño y reajusta el contenido de la creatividad antes de mostrar el lightbox. Con esto se evita que la creatividad salte al abrirse el lightbox. Si la creatividad necesita un fondo, colócalo en un contenedor intermedio (como un <div> de tamaño completo) en lugar de insertarlo en <body>.

Cuando el anuncio AMP HTML se ejecuta en un entorno de terceros (por ejemplo, en un documento que no es AMP), la creatividad se centra con respecto al viewport y luego se muestra. Esto se debe a que los iframes de terceros deben basarse en una API postMessage para habilitar funciones como el cambio de tamaño de los marcos, que es asíncrono. Por lo tanto, al centrar la creatividad en primer lugar, la transición se hace de manera fluida y sin saltos visuales.

Ejemplos de transiciones en lightbox para anuncios AMP HTML

En los ejemplos siguientes se muestra la transición de un anuncio AMP HTML que tiene el atributo animate-in="fly-in-bottom" definido en el elemento lightbox de un anuncio AMP HTML en un friendly iframe, y de un anuncio AMP HTML en un iframe de terceros.

En friendly iframes (p. ej., procedente de una caché AMP)


En iframes de terceros (p. ej., no procedente de una caché AMP)


Validación

Consulta las reglas de amp-lightbox en la especificación de la herramienta de validación de AMP.

¿Necesita ayuda adicional?

¿Ha leído este documento una docena de veces pero realmente no responde todas sus preguntas? Quizás otras personas piensen lo mismo: póngase en contacto con ellas en Stack Overflow.

Ir a Stack Overflow
¿Encontró un error o considera que falta una función?

¡El proyecto AMP alienta profundamente su participación y contribuciones! Esperamos que se convierta en un miembro permanente de nuestra comunidad de código abierto, pero también agradecemos las contribuciones esporádicas sobre los temas que le apasionan especialmente.

Ir a GitHub