¿Cómo preparar la interfaz visual para marcar y gestionar películas favoritas?
Explorar nuevas formas de interactuar con una aplicación web puede ser una experiencia gratificante tanto para los desarrolladores como para los usuarios. En esta clase, se crea la interfaz visual para una sección dedicada a las películas favoritas, preparando el camino para integrar el almacenamiento local en futuras clases. Este segmento cubre el proceso de maquetación HTML y el diseño de CSS, para dar vida a una funcionalidad clave en aplicaciones de gestión de contenido.
¿Cómo se estructura el nuevo layout con HTML?
El primer paso en la creación de nuestra sección es definir claramente el conjunto de elementos HTML que la compone. Aquí se hace hincapié en la reutilización de estructuras de código ya establecidas, manteniendo una consistencia en la nomenclatura y estilo de la página.
Creación de Sección:
Se crea una sección con un identificador like-it y una clase like-it-container para las películas favoritas.
Dentro de esta sección, se define un encabezado like-it-header con un h2 titulado "Películas Favoritas", que recibe la clase like-it-title.
Lista de Películas:
Se declara un article con la clase like-it-movie-list para contener las películas.
Las películas serán dinámicamente insertadas con JavaScript a partir de datos almacenados localmente.
<sectionid="like-it"class="like-it-container"><divclass="like-it-header"><h2class="like-it-title">Películas Favoritas</h2></div><articleclass="like-it-movie-list"><!-- Aquí se insertan las películas --></article></section>
¿Cómo aplicar estilos CSS adecuados?
Con el HTML en su lugar, se procede a estilizar la sección utilizando CSS, enfatizando la importancia de la coherencia visual mediante la reutilización de estilos de las secciones ya existentes.
Estilos de Sección:
Se aplican padding y margin-top similares a otras secciones para lograr coherencia.
Se agregan estilos para compatibilidad con scroll horizontal.
Diseño del Botón de Favoritos:
Se introduce un botón que permitirá marcar las películas como favoritas. Este botón se posiciona con position:absolute encima de cada imagen de película.
Se define un border-radius para darle una forma circular, y se estiliza con un icono de corazón.
¿Cómo se integra JavaScript para la interactividad?
Para añadir interactividad y funcionalidad, se introduce JavaScript, que nos permitirá manipular las películas favoritas desde el lado del cliente.
Creación del Botón:
Un botón para cada película es creado y se le añade un event listener para el evento click, el cual realizará el toggle de almacenamiento local.
Preparación para el Almacenamiento Local:
Aunque la lógica de almacenamiento no se implementa en esta clase, se estructura la función para facilitar su integración futura.
const movieButton =document.createElement('button');movieButton.classList.add('movie-button');movieButton.addEventListener('click',()=>{// Aquí se integrará la función para almacenar la película como favorita movieButton.classList.toggle('movie-button-like');});
¿Qué problemas comunes pueden surgir y cómo resolverlos?
Desarrollar una interfaz compleja implica resolver problemas emergentes como fallos en el posicionamiento del botón causado por conflictos en el event listener o la necesidad de ajustar los estilos para mejorar la experiencia de usuario. Aquí, manejar correctamente el position y ajustar botones para evitar acciones no deseadas es fundamental para una implementación exitosa.
Conflictos de Event Listener:
Garantizar que los clics se registren donde es necesario, ajustando el listener para ignorar eventos no deseados.
Mejorar la Visibilidad del Botón:
Aplicar un z-index adecuado asegura que los elementos se superpongan correctamente.
Esta clase sienta las bases de una función visualmente atractiva y permite que las secciones futuras implementen integración completa con almacenamiento local, ofreciendo una experiencia de usuario mejorada.
¡Me parece fantástico que nos dejen ver cómo hacen el html.y el css!
Me da nuevas ideas para ver cómo usan las clases y cómo crean los elementos, quien no le interese puede adelantar o aumentar la velocidad
PD: El audio de juan está desfasado con el video del código, ojo.
Te lo devuelvo ‘💜‘, ahora esta púrpura porque le dí click.
Otra forma de evitar la propagacion de eventos es usando el evento 'stopPropagation' en el addEventListener del boton de like (movieBtn), con esto no tendriamos que mover el evento del contenedor a la imagen
Excelente, me ayudo mucho.
Para ver el menú de emojis en Windows
teclas = windows + .
sos un crack!
Like si te gustan estas clases con CSS en vivo.
Alli les dejo la imagen del sprite del botón me gusta de twitter para que lo utilicen:
También es posible detener la propagación del evento de click que creamos para el contenedor de la película en el botón mismo
Al hacer eso vamos a poder darle click al botón sin necesidad de desencadenar el otro evento que nos llevaría a la descripción de la película.
Hice este botón utilizando los iconos de font awesome, y con la misma función de click para agregar al Local Storage se le puede cambiar la clase y ya cambia su color, lo dejo por si sirve de idea para alguien
movieBtn.addEventListener('click',()=>{//FUNCION PARA AGREGAR PELICULA A LOCAL STORAGE iconBtn.classList.remove('fa-regular'); iconBtn.classList.add('fa-solid');});
cuál es el estilo del scroll para que no sea vea por defecto (rectangular)?