Carrusel de pantalla completa adaptable con CSS3 y Vanilla JavaScript-Baarousel
| Autor: | MatthewBaa |
|---|---|
| Views Total: | 1,265 |
| Sitio oficial: | Ir a la web |
| Actualizado: | February 6, 2018 |
| Licencia: | MIT |
Vista prévia
Descripción
Un carrusel receptivo y de pantalla completa construido con JavaScript y CSS3 de vainilla que hace posible la transición entre cualquier elemento de bloque con un efecto de transición de barrido con CSS3.
Funcionamiento
Añade tantas diapositivas al carrusel.
<div class="carousel"> <div class="viewport"> <div class="slide-container"> <div class="slide-3"> </div> </div> <div class="slide-container"> <div class="slide-2"> </div> </div> <div class="slide-container"> <div class="slide-1"> </div> </div> </div> </div>
El CSS básico para el carrusel.
.carousel {
width: 100%;
height: 100vh;
box-sizing: border-box;
}
.viewport {
width: 100%;
height: 100%;
position: relative;
background-color: black;
}
.slide-container {
width: 100%;
height: 100%;
position: absolute;
}
.slide-container > div {
width: 100%;
height: 100%;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
animation-name: swipe;
animation-duration: 15s; /* 5 * number of slides. */
animation-iteration-count: infinite;
animation-timing-function: cubic-bezier(1, 0, 0, 1);
z-index: 1;
position: absolute;
background-color: white;
} El CSS3 para el efecto de transición de deslizamiento.
@keyframes
swipe {
0% {
z-index: 1;
will-change: width;
}
15% {
width: 0;
visibility: hidden;
}
30% {
z-index: 0;
width: 100%;
}
65.9% { /* (Numer of slides * 10) + 36 - 0.1. */
z-index: 0;
visibility: hidden;
}
66% { /* (Numer of slides * 10) + 36. */
visibility: visible;
}
} Añada imágenes de fondo a las diapositivas.
.slide-1 {
background: url(images/1.jpeg) no-repeat center center fixed;
animation-delay: 5s;
}
.slide-2 {
background: url(images/2.jpg) no-repeat center center fixed;
animation-delay: 10s;
}
.slide-3 {
background: url(images/3.jpeg) no-repeat center center fixed;
animation-delay: 15s;
} El principal JavaScript para activar el carrusel en la carga de la página.
const slidesContainers = document.querySelectorAll('.slide-container');
const wrapper = document.querySelector('.wrapper');
let panAmount = 5;
function init() {
slidesContainers.style.width = (100 + slidesContainers.length * panAmount) + "%"; // Set wrapper width based on number of slides + panAmount.
for (var i = 0; i < slidesContainers.length; i++) {
slidesContainers.style.width = 100 / slidesContainers.length + "%"; // Fit slides into the wrapper.
}
}
init();





