Carrusel de pantalla completa adaptable con CSS3 y Vanilla JavaScript-Baarousel

Tiempo de ejecución: 30 minutos. Empezar

Autor: MatthewBaa
Views Total: 1,265
Sitio oficial: Ir a la web
Actualizado: February 6, 2018
Licencia: MIT

Vista prévia

Carrusel de pantalla completa adaptable con CSS3 y Vanilla JavaScript-Baarousel

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();

Te puede interesar: