Loading repository data…
Loading repository data…
Seb-RM / repository
Este proyecto es un carrusel de imágenes avanzado desarrollado con HTML, CSS y JavaScript puro. Permite a los usuarios navegar a través de una colección de imágenes.
Este proyecto es un carrusel de imágenes avanzado desarrollado con HTML, CSS y JavaScript puro. Permite a los usuarios navegar a través de una colección de imágenes utilizando botones de flecha para moverse hacia adelante o atrás, o seleccionando directamente una imagen específica haciendo clic en su miniatura correspondiente.
El carrusel resuelve el problema de mostrar múltiples imágenes de manera interactiva y atractiva en un espacio limitado, mejorando la experiencia del usuario en galerías de productos, portafolios o presentaciones. Está dirigido a desarrolladores web que buscan una solución ligera y personalizable para integrar en sus proyectos, así como a usuarios finales que desean una navegación intuitiva.
Para ver el carrusel en acción, simplemente abre el archivo index.html en tu navegador web favorito o visita la demo en vivo. El carrusel mostrará tres imágenes de auriculares (earbuds) con navegación interactiva.
Vista previa del layout:
| Tecnología | Versión | Descripción |
|---|---|---|
| 5 | Estructura semántica del documento | |
| 3 | Estilos y animaciones | |
| ES6+ | Lógica interactiva | |
| 6.7.2 | Iconos para botones de navegación |
Este proyecto no requiere instalación compleja. Puedes obtener los archivos descargándolos directamente desde el repositorio en GitHub o clonándolo localmente.
Clona el repositorio (recomendado para desarrolladores):
git clone https://github.com/Seb-RM/Javascript_Html_Css-Advance-Image-Carousel.git
cd Javascript_Html_Css-Advance-Image-Carousel
O descarga el ZIP: Ve a la página del repositorio en GitHub, haz clic en "Code" > "Download ZIP", y extrae los archivos en un directorio local.
Verifica los archivos: Asegúrate de tener index.html, style.css, script.js y la carpeta images/ en el mismo directorio.
Abre en navegador: Haz doble clic en index.html o arrastra el archivo a una ventana del navegador.
No aplica, ya que es un proyecto frontend puro sin backend.
index.html en tu navegador.images/ y actualiza las rutas en index.html.style.css (.slides-container).index.htmlPropósito: Define la estructura HTML del carrusel, incluyendo el contenedor principal, miniaturas y el área del carrusel con botones de navegación.
Conceptos Clave:
Fragmentos Destacados:
<div class="main-container"> <!-- Contenedor principal con layout flex -->
<div class="col-1"> <!-- Columna izquierda para miniaturas -->
<div class="item active"> <!-- Miniatura activa (resaltada) -->
<img src="./images/ear-buds.png" alt=""> <!-- Imagen de miniatura -->
</div>
<!-- Más items... -->
</div>
<div class="col-2"> <!-- Columna derecha para carrusel principal -->
<div class="carousel"> <!-- Contenedor del carrusel -->
<button id="prevBtn"> <!-- Botón anterior -->
<i class="fas fa-angle-left"></i> <!-- Icono Font Awesome -->
</button>
<!-- Slides container... -->
</div>
</div>
</div>
API/DOM:
querySelector y querySelectorAll.style.cssPropósito: Proporciona el diseño visual, layout responsivo y animaciones para el carrusel.
Conceptos Clave:
Fragmentos Destacados:
.slides-container {
display: flex; /* Layout horizontal para las diapositivas */
width: 579px; /* Ancho fijo del contenedor */
height: 579px; /* Alto fijo del contenedor */
}
/* En updateSlides() se aplican dinámicamente: */
.slides-container {
transition: all 0.3s ease-in-out; /* Transición suave para movimientos */
transform: translateX(${-slideWidth * index + 1}px); /* Desplazamiento horizontal basado en índice */
}
API/DOM:
item.active).script.jsPropósito: Implementa la lógica interactiva del carrusel, manejando eventos de clic y actualizando la posición de las diapositivas.
Conceptos Clave:
index.Fragmentos Destacados:
function updateSlideIndex(offset) {
index += offset; // Incrementa/decrementa el índice según offset (+1 o -1)
if (index < 0) {
index = slides.length - 1; // Ciclo al último slide si va antes del primero
} else if (index >= slides.length) {
index = 0; // Ciclo al primer slide si va después del último
}
}
function updateSlides() {
slidesContainer.style.transition = 'all 0.3s ease-in-out'; // Aplica transición suave
slidesContainer.style.transform = `translateX(${-slideWidth * index + 1}px)`; // Desplaza contenedor horizontalmente
}
nextBtn.addEventListener('click', moveToNextSlide); // Evento para botón siguiente
items.forEach((item, i) => {
item.addEventListener('click', () => handleItemClick(i)); // Eventos para cada miniatura
});
API/DOM:
addEventListener para clics en botones y miniaturas.transform y transition en el contenedor de diapositivas.querySelector y querySelectorAll para acceder a elementos HTML.El proyecto sigue una arquitectura simple de componentes:
Advanced Image Carousel
├── index.html (Estructura principal)
├── style.css (Estilos y layout)
├── script.js (Lógica interactiva)
└── images/ (Recursos estáticos)
├── ear-buds.png
├── ear-buds2.png
└── ear-buds3.png
Patrones de Diseño:
index maneja el estado del carrusel.Flujo de Datos:
Este diseño permite fácil mantenimiento y extensión, como agregar más imágenes o nuevas funcionalidades de navegación.