Nueva API para crear popovers con HTML SIN usar Javascript - #programacionenespañol

Programación en español
27 May 202415:11

Summary

TLDREn este video, se presenta cómo utilizar la nueva API de popovers o elementos emergentes disponibles en los principales navegadores. Se muestra cómo crear elementos emergentes semánticamente ligeros que no bloquean la interacción con la página web detrás de ellos. Se incluye un ejemplo práctico con código HTML, CSS y una breve mención de la compatibilidad en diferentes navegadores. Además, se explica cómo estilizar y controlar el comportamiento de estos elementos usando únicamente HTML y CSS, sin la necesidad de JavaScript. Finalmente, se menciona la posibilidad de controlar la API a través de JavaScript si es necesario.

Takeaways

  • 😀 La nueva API de popovers permite crear elementos emergentes similares a los diálogos en los navegadores principales.
  • 🔍 Existe una diferencia entre los diálogos y los popovers, siendo estos últimos menos invasivos y permitiendo la interacción con la página web detrás del elemento emergente.
  • 🌐 La compatibilidad de la API de popovers está disponible en Chrome 114, Edge 125, Firefox 17 y Safari.
  • 📁 Se crea un directorio llamado 'obi-one-popover' para el ejemplo práctico, incluyendo archivos HTML, CSS y JS.
  • 🎯 Para crear un popover, se utiliza el atributo 'power-target' en el botón que disparará el elemento emergente.
  • 📚 Se debe incluir un atributo 'popover' en el elemento que se mostrará como popover, con un ID que coincida con el del 'target'.
  • 🖌️ Los estilos CSS se pueden aplicar directamente al atributo 'popover' para personalizar el ancho, borde, color de texto y otras propiedades.
  • 🔑 Se pueden utilizar transiciones y animaciones en CSS para controlar cómo se muestra y se oculta el popover.
  • 🛠️ La API de popovers ofrece métodos como 'hide-popover', 'show-popover' y 'toggle-popover' para controlar el elemento emergente a través de JavaScript.
  • 🔄 El comportamiento predeterminado del popover puede ser modificado utilizando el atributo 'manual' para controlar su apertura y cierre de manera explícita.

Q & A

  • ¿Qué es la nueva API de popovers y cómo se relaciona con los elementos emergentes?

    -La nueva API de popovers permite crear elementos emergentes muy similares a los diálogos (dialogs). Estos elementos emergentes se pueden mostrar sin la necesidad de recurrir a JavaScript, excepto para casos de manejo programático específico.

  • ¿Qué diferencia hay entre un popover y un dialog según la API?

    -La diferencia principal entre un popover y un dialog es que el popover no tiene un valor semántico adicional en HTML y no bloquea la interacción con la página o el contenido detrás del elemento emergente, a diferencia de los dialogs.

  • ¿En qué navegadores está disponible la nueva API de popovers?

    -La nueva API de popovers está disponible en Chrome desde la versión 114, en Edge 125, en Firefox 17 y en Safari 17.

  • ¿Cómo se crea un elemento emergente utilizando la API de popovers?

    -Para crear un elemento emergente, se debe definir un 'target' que será el elemento que dispare el popover. Luego, se utiliza el atributo 'popover-target' en el elemento que se quiere que aparezca como popover, y se le asigna un ID que coincida con el del target.

  • ¿Cómo se puede personalizar el estilo de un popover utilizando CSS?

    -Se puede personalizar el estilo de un popover utilizando CSS directamente haciendo referencia al atributo 'popover'. Se pueden cambiar propiedades como ancho, borde, color de texto, padding, entre otros.

  • ¿Cómo se maneja el comportamiento de cierre automático de un popover?

    -El comportamiento de cierre automático de un popover se puede controlar a través del atributo 'popover-action' con el valor 'hide'. También se puede establecer manualmente el cierre del popover utilizando el valor 'manual'.

  • ¿Cómo se puede hacer que un popover se muestre y se oculte de manera animada?

    -Para animar la aparición y desaparición de un popover, se pueden utilizar transiciones CSS y cambios en las propiedades de estilo, como 'transform', asociadas con el estado del popover abierto o cerrado.

  • ¿Cómo se puede agregar un botón de cierre dentro del popover?

    -Para agregar un botón de cierre, se puede utilizar el atributo 'popover-action' con el valor 'hide' en un botón dentro del elemento emergente, lo que permitirá ocultar el popover cuando se haga clic en dicho botón.

  • ¿Cómo se puede utilizar la API de popovers sin JavaScript?

    -La API de popovers se puede utilizar sin JavaScript a través de HTML y CSS. Se definen los elementos y se estilizan con CSS, y se maneja el comportamiento del popover utilizando atributos HTML específicos.

  • ¿Dónde puedo encontrar el código y más información sobre la implementación del popover?

    -El código y más información sobre la implementación del popover se encuentran en un repositorio de GitHub, el enlace al cual se puede encontrar en el primer comentario del vídeo.

Outlines

00:00

🔍 Introducción a la nueva API de Popovers

El video comienza con una introducción sobre la nueva API de popovers, que ahora está disponible en los navegadores principales. Se menciona la similitud con la API de diálogos y se destacan las diferencias clave, como la falta de valor semántico adicional y la capacidad de interactuar con el contenido detrás del elemento emergente. También se aborda la compatibilidad de la API con varias versiones de navegadores.

05:01

🔧 Ejemplo práctico con HTML y CSS

Se presenta un ejemplo práctico donde se crea un directorio y archivos HTML, JS y CSS. Se explica cómo agregar un botón que actuará como disparador del popover mediante el atributo 'popover-target'. Además, se detalla cómo estructurar el HTML para incluir el popover y cómo agregar el atributo 'popover' al elemento objetivo. Finalmente, se muestra cómo probar la funcionalidad usando 'live server'.

10:04

🎨 Estilizando el Popover con CSS

Se profundiza en la estilización del popover usando CSS. Se describen pasos para centrar elementos, cambiar colores, agregar transiciones y ajustar propiedades de tamaño y borde. También se explica cómo hacer que el popover aparezca y desaparezca con animaciones utilizando atributos CSS como 'popover-open' y 'starting-style', aunque se menciona la limitación de compatibilidad en algunos navegadores.

15:05

💡 Opciones avanzadas y control manual

El video continúa con opciones avanzadas para controlar el popover, como la capacidad de evitar que se cierre automáticamente al hacer clic afuera o presionar 'escape'. Se explica cómo agregar un botón de cierre manual dentro del popover y cómo utilizar atributos como 'popover-action' para manejar el cierre. También se destaca la inteligencia de la API para cerrar automáticamente los elementos emergentes abiertos en modo automático.

🔄 Integración con JavaScript

Se finaliza el video explicando cómo controlar el popover mediante JavaScript utilizando métodos como 'hidePopover', 'showPopover' y 'togglePopover'. Se anima a los espectadores a consultar la documentación de la API en MDN para obtener más detalles. Además, se sugiere la posibilidad de usar la API para crear sistemas de notificación como 'toasters' sin depender de librerías adicionales.

📦 Conclusión y recursos adicionales

El video concluye recordando a los espectadores que el código presentado está disponible en un repositorio de GitHub, cuyo enlace se encuentra en el primer comentario del video. Se invita a los espectadores a dejar comentarios, likes, compartir el video y suscribirse al canal. Se despide con un saludo y buenos deseos para el código de los espectadores.

Mindmap

Keywords

💡API de popovers

La API de popovers es un conjunto de herramientas y protocolos que permiten a los desarrolladores crear elementos emergentes en las aplicaciones web. En el video, se presenta cómo esta nueva API permite crear elementos emergentes similares a los diálogos, pero con diferencias semánticas y de comportamiento. Se menciona que esta API ya está disponible en los navegadores principales, lo que indica su relevancia para el desarrollo web moderno.

💡Elementos emergentes

Los elementos emergentes son componentes de la interfaz de usuario que se superponen al contenido principal de una página web y suelen aparecer en respuesta a una acción del usuario. En el contexto del video, se utiliza la API de popovers para crear estos elementos, que son una forma de diálogo pero con una interacción más fluida con el contenido de la página web.

💡Dialog

Un 'dialog' es un tipo específico de elemento emergente que suele utilizarse para mostrar información o recibir entrada del usuario sin la necesidad de recargar la página. En el video, se compara el 'dialog' con los popovers, señalando que los popovers no tienen un valor semántico adicional en HTML y permiten una mayor interacción con la página web mientras están visibles.

💡Atributos HTML

Los atributos HTML son propiedades que se añaden a las etiquetas HTML para proporcionar información adicional o para controlar el comportamiento de los elementos. En el video, se usan atributos como 'power-target' y 'popover' para crear y controlar la apariencia y el comportamiento de los elementos emergentes.

💡CSS

CSS (Hoja de Estilo en Cascada) es un lenguaje utilizado para describir la presentación de un documento escrito en un lenguaje de marcado, como el HTML. En el video, se muestra cómo se pueden utilizar las referencias a atributos en CSS para estilizar los elementos emergentes, como cambiar su ancho, agregar bordes y definir animaciones.

💡Transiciones

Las transiciones en CSS son una forma de animar cambios en la propiedad de un elemento, lo que permite que los elementos cambien de un estilo a otro de manera suave y atractiva. En el video, se menciona el uso de transiciones para dar estilo y animar el estado del elemento emergente, como su aparición y desaparición.

💡Viewport

El 'viewport' es la parte visible de un document o página web que se muestra en la pantalla. En el script, se utiliza la altura del viewport ('viewport height') para posicionar y animar elementos emergentes, asegurando que estén visibles y estén bien posicionados en relación con el contenido de la página.

💡Manejo programático

El manejo programático se refiere a la capacidad de controlar y manipular elementos de una página web a través de código, como JavaScript. Aunque el video se centra en el uso de HTML y CSS para crear popovers, también se menciona la posibilidad de utilizar JavaScript para añadir comportamientos adicionales o 'listeners' a los elementos emergentes.

💡Compatibilidad

La compatibilidad hace referencia a la capacidad de un elemento, en este caso, la API de popovers, de funcionar correctamente en diferentes navegadores y sistemas operativos. El video destaca que la nueva API está disponible en navegadores principales desde ciertas versiones específicas, lo que es crucial para el soporte y la accesibilidad de las funcionalidades en diferentes entornos.

💡Estilo personalizado

El 'estilo personalizado' se refiere a la capacidad de diseñar y adaptar la apariencia de los elementos de una interfaz de usuario según las necesidades o preferencias del usuario o del desarrollador. El video ofrece ejemplos de cómo se pueden utilizar HTML y CSS para personalizar la apariencia y el comportamiento de los popovers, permitiendo una experiencia de usuario única y atractiva.

Highlights

Se presenta una nueva API de popovers o elementos emergentes disponible en los navegadores principales.

La API permite crear elementos emergentes sin necesidad de JavaScript, excepto para manejo programático.

Existen diferencias semánticas entre los elementos emergentes y los dialogos, con el primero no bloqueando la interacción con la página.

La compatibilidad de la API está presente en Chrome 114, Edge 125, Firefox 17 y Safari.

Se muestra un ejemplo práctico de cómo utilizar la API para crear un elemento emergente.

Se explica cómo establecer un elemento como 'target' para activar el elemento emergente.

Se describe cómo utilizar atributos como 'power-target' y 'popover' para configurar el elemento emergente.

Se puede continuar interactuando con los elementos detrás del elemento emergente, a diferencia de los dialogos.

Se muestra cómo agregar estilos CSS para personalizar la apariencia del elemento emergente.

Se discute cómo utilizar transiciones y animaciones para el elemento emergente.

Se menciona la posibilidad de controlar el comportamiento del elemento emergente con bindings de teclado.

Se detalla cómo evitar que el elemento emergente se cierre automáticamente con el atributo 'manual'.

Se ofrece la opción de controlar el elemento emergente a través de JavaScript utilizando métodos como 'hide', 'show' y 'toggle'.

Se sugiere la posibilidad de utilizar la API de popovers para crear sistemas de notificaciones sin necesidad de librerías adicionales.

El código y la información adicional están disponibles en un repositorio de GitHub.

Se invita a los espectadores a dejar comentarios, dar like, compartir el video y suscribirse al canal.

Transcripts

play00:00

ustedes lo han pedido en los comentarios

play00:01

Así que el día de hoy vamos a ver cómo

play00:02

trabajar con la nueva Api de popovers o

play00:05

elementos emergentes sí que está ya

play00:07

disponible en los navegadores

play00:09

principales Recuerda que si te gusta el

play00:11

contenido puedes hacerte miembro del

play00:12

Canal la información en el primer

play00:13

comentario y pues si te ha gustado el

play00:16

vídeo No olvides compartirlo suscribirte

play00:17

al Canal y ahora sí sin más preámbulo

play00:19

Vamos al lío Ahora sí antes de ir al

play00:21

código de qué va esta nueva Api sí

play00:24

básicamente nos permite crear elementos

play00:25

emergentes muy parecidos a los dialog

play00:28

bien recuerda que ya tenemos una appi

play00:29

también para crear dialogs o ventanas

play00:31

modales sin necesidad de recurrir a

play00:33

javascript a excepción de por supuesto

play00:35

eh temas de handling o de manejo

play00:38

programático Sí donde pues podríamos

play00:40

crear algunas funciones o listeners

play00:42

según nos interese lo mismo ocurre con

play00:44

esta nueva Api hay diferencias entre el

play00:46

dialog y el popover que vamos a estar

play00:48

viendo diferencias a nivel semántico de

play00:51

hecho el Api de popover o el uso de este

play00:54

tipo de elementos emergentes no tiene un

play00:57

valor semántico adicional a nivel de

play00:59

html

play01:00

sí tampoco bloquea lo que es la

play01:03

interacción con la página e o con el

play01:05

contenido Mejor dicho que se encuentra

play01:07

detrás del elemento emergente A

play01:09

diferencia de Por ejemplo dialo si te

play01:10

preguntas por la compatibilidad Pues

play01:12

esta nueva app ya está disponible a

play01:13

partir de la versión 114 en Chrome y

play01:15

Edge 125 en firefox y 17 en Safari Así

play01:18

que la puedes utilizar en los

play01:19

principales navegadores vamos Ahora sí a

play01:21

un ejemplo rápido con código bien aquí

play01:23

comencé creando un directorio llamado

play01:25

obi One popover y ya vamos a ver el Por

play01:28

qué y utilizar la es s sencillo aquí

play01:31

tenemos un archivo html uno js y uno css

play01:34

bien y lo que vamos a hacer primero es

play01:35

Pues nada vamos a hacer aquí nuestra

play01:37

estructura html 5 bien vamos a poner que

play01:40

el documento estará en

play01:45

español y aquí lo que vamos a hacer es

play01:48

agregar dos elementos en principio bien

play01:51

Por ejemplo aquí como contenido

play01:53

principal podríamos tener un

play01:57

botón y Qué necesitamos para nosotros

play02:00

crear en este caso un elemento emergente

play02:01

primero que nada el target este botón va

play02:03

a ser el que dispare el elemento

play02:05

emergente para Que aparezca Así que

play02:08

necesitamos darle un Target es decir un

play02:10

elemento que será justamente el elemento

play02:12

emergente que queremos Que aparezca bien

play02:15

para ello podemos utilizar el

play02:17

atributo power Target y aquí lo que

play02:20

vamos a pasarle es un ID de otro

play02:21

elemento Como por

play02:27

ejemplo One popover

play02:31

Sí y vamos a ponerlo como texto

play02:35

Hello y ahora vamos a crear el elemento

play02:38

emergente sí que es lo que se va a

play02:39

renderizar por allí y para ello pues

play02:41

podríamos crear por ejemplo un

play02:43

DIF y aquí tenemos que agregar dos cosas

play02:46

número uno pues por supuesto el ID con

play02:49

el mismo nombre en este caso que pusimos

play02:51

como Target y además el atributo popover

play02:55

para que pues la Api sepa a quién está

play02:58

llamando a Qué elemento estamos

play02:59

invocando para Que aparezca como

play03:00

elemento emergente Sí y aquí pues

play03:02

podemos hacer lo que nosotros queramos

play03:04

eh podríamos poner por ejemplo un

play03:08

h1 podríamos poner aquí pues cualquier

play03:11

otra cosa por ejemplo un párrafo sí lo

play03:14

que tú quieras una imagen etcétera ya

play03:16

vamos a modificarlo un poco pero primero

play03:18

veamos cómo funciona esto para verlo

play03:19

pues podríamos abrir esto con live

play03:22

server eh

play03:24

Perdón server

play03:27

Sí aquí tendríamos el botón y cuando

play03:30

pulsamos Fíjate que aparece el Dif con

play03:35

Pues todo lo que tenemos aquí como

play03:36

elemento emergente y Cómo sabemos que es

play03:37

un elemento emergente Pues fíjate que si

play03:39

yo clico afuera de ese elemento

play03:42

bien se desaparece es como si estuviese

play03:44

clicando pues eh detrás de lo que es el

play03:47

contenido emergente y fíjate aquí algo

play03:49

interesante y es que a diferencia de la

play03:51

del dialog como te comentaba antes pues

play03:54

podemos seguir interactuando con lo que

play03:55

son los elementos de la web los

play03:57

elementos que están detrás del elemento

play03:58

emergente si te fijas aquí el hover

play04:00

sigue funcionando sobre el botón Así que

play04:02

aquí podríamos tener una primera

play04:04

diferencia con respecto al dialog y

play04:06

además de eso también tenemos eh

play04:08

bindings de las Keys del teclado Como

play04:10

por ejemplo si yo tengo aquí el elemento

play04:12

emergente abierto y le doy escape se

play04:14

cierra sí esto lo podemos controlar

play04:17

podemos decirle que al elemento que pues

play04:19

se cierre solamente manualmente para que

play04:21

evites cerrarlo con escape o

play04:23

directamente clicando fuera del elemento

play04:25

bien ya vamos a ver cómo hacerlo pero de

play04:27

momento Este es el funcionamiento básico

play04:30

de lo que es esta nueva Api vamos a

play04:32

modificar esto un poco a nivel de css

play04:34

para que veas có estilar lo y además

play04:36

vamos a ver pues algunas cosillas

play04:38

interesantes que puedes llegar a hacer

play04:39

bien para empezar le he agregado algunos

play04:41

estilos al Body y al botón que tenemos

play04:43

como disparador principal sí básicamente

play04:46

he centrado todo en el body y le he

play04:48

puesto un background color al Body para

play04:50

eh tema oscuro Sí y además en el botón

play04:53

Pues nada he agregado aquí pues una

play04:55

transición en el Focus y en el hover sí

play04:57

o por lo menos una duración de

play04:58

transición vale de 0.5 segundos y pues

play05:01

le cambio el color poco más bien si nos

play05:04

fijamos en el resultado pues Será algo

play05:06

tal que sí ya está Vale y si clicamos

play05:09

pues sigue apareciendo esto así vamos a

play05:12

estilar lo que es el elemento emergente

play05:13

para esto Pues básicamente podemos aquí

play05:15

en el css utilizar directamente pues una

play05:19

referencia al atributo popover sí eh

play05:23

Ups

play05:25

vale Y aquí podemos comenzar por ejemplo

play05:28

eh cambiando de lo que es el ancho al

play05:30

elemento Vamos a ponerle aquí yo que sé

play05:32

unos 200 píxeles vale Y si probamos esto

play05:36

en principio fíjate que ahora el ancho

play05:38

Pues cambia aquí pues puedes poner la

play05:40

unidad de tamaño que tú quieras Por

play05:42

ejemplo yo que sé vamos a ponerle por

play05:44

aquí un

play05:46

25 de lo que es el dynamic view wid Sí y

play05:52

te quedaría alg tal que así que

play05:54

podríamos ponerle yo que sé un 50 vale

play05:58

va a depender de lo que te interese

play06:01

además de esto podríamos ponerle aquí un

play06:05

Border

play06:07

Non o incluso un

play06:10

Border blanco

play06:13

sí voy a ponerle por aquí el mismo color

play06:16

azul que tenemos para el

play06:18

botón y además de eso vamos a ponerle

play06:22

aquí un color de texto blanco también y

play06:26

quedaría algo tal que así

play06:29

aquí si no se me saltan las

play06:33

propiedades poner ahora sí ya está bien

play06:37

podríamos el borde un poco más grande

play06:40

bien e incluso tener un Border radius s

play06:44

de yo que sé c píxeles vale o incluso un

play06:48

poco

play06:49

más y queda algo tal que así vale además

play06:53

de de esto Pues también puedes estirarlo

play06:55

podemos ponerle un padding global de

play06:58

unos 10 píxeles

play07:01

s y queda algo tal que

play07:04

así aquí pues puedes manejar Luego el

play07:07

font size y todo lo que tú quieras Ahora

play07:09

aquí podemos jugar también con lo que

play07:11

son las transiciones si vamos a ver cómo

play07:15

aquí para estilar y también animar o

play07:18

controlar algunas algunos estados del

play07:21

elemento emergente bien podemos hacer lo

play07:23

siguiente podríamos aquí

play07:24

en el estilo del popover bien agregar

play07:28

una transición por ejemplo que vaya Pues

play07:30

en este caso desde el centro donde

play07:32

aparece hacia arriba cuando ya Cerramos

play07:35

el elemento emergente y ahora para

play07:37

controlar el estado es decir cómo se

play07:39

muestra en este caso cuando está abierto

play07:41

bien porque si probamos esto de momento

play07:43

Fíjate que no funciona es decir No es

play07:45

que no funcione es que no se ve vale le

play07:47

estoy dando aquí click y pues aquí como

play07:49

hemos hecho un Translate de 0 a -100 del

play07:53

High del viewport Vale pues obviamente

play07:55

está por encima del viewport así que no

play07:57

se ve cuando esté abierto lo que nos

play08:00

interesa es que se Centre Entonces cómo

play08:03

hacemos esto Pues básicamente utilizando

play08:05

aquí

play08:06

popover Open Sí y aquí le podemos poner

play08:09

un Translate eh

play08:12

Perdón para que se traslade a las

play08:14

coordenadas por ejemplo cer y no quiero

play08:16

que quede todo en el centro sino más o

play08:18

menos unos -20 dvh sí esto por cierto es

play08:22

dynamic View height VIP height vale o el

play08:27

alto del viewport de forma dinámica el

play08:29

Dinámico es por si por ejemplo esto

play08:31

funciona esta unidad funciona por

play08:32

ejemplo cuando tenemos en el móvil un

play08:34

teclado abierto vale toma el High del

play08:37

viewport eh tomando en cuenta el teclado

play08:39

bien no el High del viewport sin el

play08:41

teclado entonces Bueno nos eh capacita

play08:44

Para tener un mayor control sobre los

play08:46

elementos que surgen en el propio

play08:49

viewport Más allá de pues lo que es

play08:51

nuestra web Vale entonces toma el alto

play08:53

que realmente nos interesa porque es el

play08:54

al visible bien

play08:56

Ah vale aquí tenemos esto y fíjate que

play08:59

ahora el elemento se ve de esta forma y

play09:03

tenene una animación por ahí al salir

play09:06

Además de eso también podríamos hacer

play09:07

algo tal que

play09:10

hover backdrop bien por si quieres

play09:13

agregarle pues justamente eso un

play09:15

backdrop ya vamos a ver qué es y podemos

play09:17

poner aquí un background color No lo sé

play09:20

rgba para agregarle por aquí

play09:22

transparencia Vamos a ponerle que sea

play09:24

blanco

play09:26

completamente UPS

play09:32

Vamos a ponerle aquí una transparencia

play09:33

de 0.2 por

play09:36

ejemplo y esto Pues fíjate que ahora

play09:38

aparece un backdrop atrás de lo que es

play09:41

el elemento emergente bien entonces

play09:44

Fíjate que puedes estilar dependiendo de

play09:46

lo que busques además de esto también

play09:48

podrías hacer el

play09:50

efecto contrario cuando el popover se

play09:53

abre esto podrías utilizar para ello

play09:56

algo tal que el starting

play10:00

St Sí y nos traemos por aquí esto es

play10:04

decir el estado del popover abierto pero

play10:06

queremos que este estado inicie con un

play10:08

valor vale en este caso pues podríamos

play10:12

poner -1 Y ahora fíjate que tendríamos

play10:14

la animación cuando se abre por qué

play10:16

porque el estado inicial del estilo del

play10:18

popover abierto Estaría pues justamente

play10:21

a -100 del High del viewport y cuando se

play10:24

abre pues Vuelve aquí al centro sí o

play10:26

bueno a men 20 en este caso y luego

play10:28

cuando se cierra regresa a men1 Sí ahora

play10:32

ojo con el uso del starting Style porque

play10:34

de hecho la compatibilidad de esto Sí

play10:37

todavía no está e full es decir hay

play10:40

navegadores que todavía no lo soportan

play10:42

por ejemplo firefox directamente tanto

play10:44

para Android como firefox para

play10:45

escritorio Sí el resto de los

play10:47

navegadores sí que lo puedes implementar

play10:49

y tendríamos este efecto de elemento

play10:51

emergente Ahora hay otras cosas que

play10:53

podemos configurar aquí para controlarlo

play10:55

un poco más vamos a verlas otra cosa que

play10:58

podemos controlar a través de la app y

play10:59

del popover es si realmente queremos que

play11:01

el elemento emergente se cierre de forma

play11:04

automática al darle por aquí pues por

play11:05

ejemplo click o pues al darle por aquí

play11:08

escape sí Y cómo controlamos esto Pues

play11:10

básicamente Nos vamos aquí al html Sí

play11:13

vamos al elemento del popover Y en vez

play11:15

de ponerle el atributo como tal lo que

play11:17

hacemos Es ponerle aquí el valor manual

play11:22

sí y qué va a pasar aquí Pues

play11:25

básicamente si abrimos de nuevo el

play11:26

popover y damos clic afuera e no se

play11:29

cierra Y si damos escape tampoco bien A

play11:33

menos que demos aquí el botón que hace

play11:34

un toggle digamos de lo que es la

play11:36

visibilidad del popover pero aparte de

play11:38

esto podríamos Añadir por aquí un botón

play11:42

Sí por ejemplo Vamos a ponerle por

play11:49

aquí Vamos a ponerle por aquí dentro del

play11:52

elemento emergente Pues un botón Sí para

play11:54

cerrar y Aquí vamos a utilizar dos

play11:57

atributos el primero el mismo Target que

play11:59

tenemos en el botón en el botón Perdón

play12:01

para abrirlo sí Y además también puede

play12:04

recibir un popover action Sí con el

play12:07

valor height para ocultarlo y de esta

play12:11

forma Tenemos aquí esto y si le damos

play12:12

aquí a Close se va bien y así

play12:16

controlamos el popover de forma manual

play12:18

ojo cuando lo tienes en forma automática

play12:20

eh Ya es lo suficientemente inteligente

play12:22

como para saber que tiene que cerrar

play12:23

todos los elementos emergentes abiertos

play12:25

cuando pues hae click afuera o cuando le

play12:28

das a escape vale Y aquí esto lo podemos

play12:30

hacer un poco más divertido quizá

play12:32

agregando pues esto por

play12:44

aquí y si abramos el popover Tenemos

play12:47

aquí al Señor Ob

play12:52

One y aquí puedes jugar un poco con lo

play12:54

que necesites para tus elementos

play12:56

emergentes y si te fijas no hemos

play12:59

utilizado absolutamente nada de

play13:02

javascript bien todo es a través de la

play13:05

Api del popover utilizando html y css

play13:09

para estirarlo y controlar también su

play13:11

comportamiento lo cual hace que esto lo

play13:13

puedas llevar a cualquier proyecto con

play13:15

cualquier framework o librería que

play13:16

tengas Sí para hacerlo de una forma

play13:18

nativa bien Ahora qué opciones tienes si

play13:21

quieres controlarlo vía javascript sí a

play13:23

través del elemento y pues los métodos

play13:25

que te provee la propia Api de estos

play13:27

elementos emergentes pues lo puedes

play13:29

hacer sin ningún problema si vos aquí a

play13:30

la documentación de la Api en mdn fíjate

play13:33

que tienes métodos como hide popover

play13:35

show popover o toggle popover bien y

play13:37

esto lo puedes utilizar desde javascript

play13:39

pues obviamente con la referencia al

play13:40

elemento html que es o que Define tu

play13:43

elemento emergente Sí así que lo puedes

play13:46

utilizar de ambas maneras y si no te

play13:48

hace falta Pues recuerda entonces aquí

play13:49

que por defecto el popover tiene un

play13:53

valor sí Si o si obviamos aquí lo que es

play13:56

el valor de la del atributo tiene un

play13:58

valor ao si no le puedes agregar el

play14:00

manual

play14:02

sí Y a partir de aquí pues ya

play14:04

controlarás lo que es el comportamiento

play14:06

de tu elemento emergente aquí solo

play14:07

bastaría pues agregar algunos estilos SS

play14:10

adicionales Como por ejemplo alguna

play14:11

clase para el botón de cierre Y pues

play14:13

obviamente aquí un display

play14:15

Flex con pues alguna cosilla de

play14:17

espaciado para lo que es el contenido de

play14:19

nuestro elemento emergente y quedaría

play14:21

algo tal que así y ahora tenemos a

play14:23

nuestro obi One popover ya listo por

play14:25

aquí para que lo puedas utilizar en tus

play14:27

proyectos y puedes aquí hacer un sistema

play14:30

Por ejemplo de toaster es decir

play14:31

notificaciones sí de éxito de error para

play14:34

las operaciones de tus proyectos sin

play14:36

necesidad de utilizar una librería

play14:37

adicional de javascript sí centralizando

play14:39

Y pues customizando por ejemplo el

play14:41

mensaje que tenemos aquí y hablando del

play14:43

mensaje que tenemos aquí Ah me acabo de

play14:45

dar cuenta que el documento html lo

play14:47

habíamos puesto en español y pues creé

play14:48

todos los textos en inglés Así que vamos

play14:50

a dejarlo por aquí en inglés y el código

play14:52

Sí de lo que acabamos de ver el día de

play14:54

hoy lo tienes en un repositorio de

play14:55

github en el primer comentario del vídeo

play14:59

al igual que más información Así que si

play15:02

te ha gustado No olvides dejar tu

play15:03

comentario tu like compartir el vídeo

play15:05

suscribirte al Canal y será hasta el

play15:07

próximo como siempre un gran saludo y

play15:09

que tengas buen código

Rate This

5.0 / 5 (0 votes)

Etiquetas Relacionadas
API de popoversElementos emergentesNavegadores webDiseño webHTML y CSSInteracción sin JavaScriptDesarrollo webWeb modernosTécnicas avanzadasPersonalización de UI