002. Carrossel de Imagens + Descrição HTML + Flechas + Dots
by francisco_negrao
HTML
<link rel="stylesheet" href="https://componentes.interago.com.br/bootstrap-grid.css">
<link rel="stylesheet" href="https://componentes.interago.com.br/global-css.css">
<section class="carousel sectionBanner iCarouselModel01">
<ol class="carouselViewport">
<li id="carouselSlide1"
tabindex="0"
class="carouselSlide active">
<img src="https://cdn.interago.com.br/img/jpg/w_0_q_8/1/mc/001-Componentes - Mídias/svg-icons//banner-ecowebdesign-min" alt="Imagem de fundo Eco Webdesign" />
<div class="container">
<div class="boxDsc">
<h1>
Aqui na Eco Webdesign você encontra:
</h1>
<ul>
<li>Webdesign Profissional</li>
<li>Campanhas para Google Ads</li>
<li>Otimização de SEO</li>
</ul>
<p>
E muito mais!
</p>
<div class="dFlex">
<a href="contato" title="Solicitar um Orçamento">Entrar em contato</a> ou <a href="https://web.whatsapp.com/send?phone=5517999999999" target="_blank" title="Clique para falar conosco no WhatsApp" class="whats-link"><i class="fab fa-whatsapp" aria-hidden="true"></i> via WhatsApp</a>
</div>
</div>
</div>
<div class="carouselSnapper">
</div>
<a href="#carouselSlide4"
class="carouselPrev">Voltar para o item anterior</a>
<a href="#carouselSlide2"
class="carouselNext">Ir para o próximo item</a>
</li>
<li id="carouselSlide2"
tabindex="0"
class="carouselSlide">
<img src="https://cdn.interago.com.br/img/jpg/w_0_q_8/1/mc/001-Componentes - Mídias/svg-icons//banner-ecowebdesign-min" alt="Imagem de fundo Eco Webdesign" />
<div class="container">
<div class="boxDsc">
<h1>
Aqui na Eco Webdesign você encontra:
</h1>
<ul>
<li>Webdesign...
CSS
body {
height: 3000px;
background-color: #000;
margin: 0px;
font-family: 'Futura Bk BT';
}
h1,
h2,
h3,
h4,
h5,
h6,
input,
textarea,
label {
font-family: 'Futura Bk BT';
}
.sectionBanner.iCarouselModel01 {
height: 800px;
position: relative;
}
.sectionBanner.iCarouselModel01 ol,
li {
list-style: none;
margin: 0;
padding: 0;
}
.sectionBanner.iCarouselModel01 .carouselViewport {
position: absolute;
height: 100%;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: flex;
overflow-x: scroll;
counter-reset: item;
scroll-behavior: smooth;
scroll-snap-type: x mandatory;
}
.sectionBanner.iCarouselModel01 .carouselSlide {
position: relative;
flex: 0 0 100%;
width: 100%;
counter-increment: item;
}
.sectionBanner.iCarouselModel01 .carouselSnapper {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
scroll-snap-align: center;
}
/* DOTS CSS */
.sectionBanner.iCarouselModel01 .carouselNavigation {
position: absolute;
right: 0;
bottom: 20px;
left: 0;
text-align: center;
z-index: 4;
}
.sectionBanner.iCarouselModel01 .carouselNavigationList,
.sectionBanner.iCarouselModel01 .carouselNavigationItem {
display: inline-block;
}
.sectionBanner.iCarouselModel01 .carouselNavigationButton {
display: inline-block;
width: 12px;
height: 12px;
background-color: #fff;
background-clip: content-box;
border: 1px solid #888;
border-radius: 50%;
font-size: 0;
transition: transform 0.1s;
}
.sectionBanner.iCarouselModel01 .carouselNavigationButton.active {
background-color: #999;
}
/* ARROWS CSS */
.sectionBanner.iCarouselModel01 .carouselPrev,
.sectionBanner.iCarouselModel01 .carouselNext {
position: absolute;
top: 0;
bottom: 0;
margin: auto;
width: 2rem;
height: 2rem;
border-radius: 50%;
font-size: 0;
outline: 0;
z-index: 5;
}
.sectionBanner.iCarouselModel01.carousel::before,
.sectionBanner.iCarouselModel01 .carouselPrev {
left:...
JavaScript
/* SCRIPTS CAROUSEL ECO WEBDESIGN */
/* DOTS ACTIVE SCRIPTS */
var carouselDots = document.querySelectorAll('.carouselNavigationButton');
carouselDots.forEach(function(carouselDot) {
carouselDot.addEventListener('click', function() {
for (var i = 0, len = carouselDots.length; i < len; i++) {
carouselDots[i].classList.remove('active');
}
this.classList.add('active');
let curItem = this.getAttribute('href');
});
})
/* ARROWS ACTIVE SCRIPTS */
var carouselArrows = document.querySelectorAll('.carouselSlide a');
carouselArrows.forEach(function(carouselArrow) {
carouselArrow.addEventListener('click', function() {
let curItem = this.getAttribute('href');
for (var i = 0, len = carouselDots.length; i < len; i++) {
if (carouselDots[i].getAttribute('href') == curItem) {
carouselDots[i].classList.add('active');
} else {
carouselDots[i].classList.remove('active');
}
}
});
});