JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="style.css">
<body>
<div class="features-item slider">
<div class="slider-controls">
<i class="active"></i>
<i></i>
<i></i>
<i></i>
</div>
<div class="slide-prev"></div>
<div class="slide-next"></div>
<a href="catalog.html" class="btn">Открыть каталог</a>
<div class="slide slide-1 slide-active">
<div class="slide-header">
<h1>Сап двач!</h1>
<p>Есть одна тян!</p>
</div>
</div>
<div class="slide slide-2">
<div class="slide-header">
<h1>Вытекают глаза?</h1>
<p>Это из-за фона!</p>
</div>
</div>
<div class="slide slide-3">
<div class="slide-header">
<h1>Есть одна тян..</h1>
<p>ТНН!</p>
</div>
</div>
<div class="slide slide-4">
<div class="slide-header">
<h1>Пошел нахуй!</h1>
<p>Пидорас!</p>
</div>
</div>
</div>
</body>
CSS
body {
min-width: 1200px;
margin: 0;
padding: 30px;
font-family: 'Cuprum', Arial, sans-serif;
font-size: 13px;
line-height: 24px;
font-weight: 400;
background-color: #fff;
}
.slider {
position: relative;
width: 620px;
height: 266px;
margin-bottom: 80px;
padding: 0;
color: #fff;
}
.slider-controls {
position: absolute;
bottom: 36px;
left: 50%;
width: 130px;
height: 10px;
margin-left: -65px;
text-align: center;
z-index: 1000;
}
.slider-controls i {
display: inline-block;
width: 6px;
height: 6px;
margin: 0 5px;
vertical-align: top;
background: white;
border: 2px solid white;
border-radius: 50%;
cursor: pointer;
}
.slider-controls .active {
background: #ee3643;
}
.slide-prev {
position: absolute;
top: 50%;
left: 22px;
margin-bottom: -20px;
cursor: pointer;
z-index: 1000;
}
.slide-next {
position: absolute;
top: 50%;
right: 22px;
margin-bottom: -20px;
cursor: pointer;
z-index: 1000;
}
.slide-prev::before {
content: '\3c';
font-family: "symbols-technomart";
font-size: 45px;
opacity: 0.5;
}
.slide-prev:hover::before {
opacity: 1;
}
.slide-next::before {
content: '\3e';
font-family: "symbols-technomart";
font-size: 45px;
opacity: 0.5;
}
.slide-next:hover::before {
opacity: 1;
}
.slider .btn {
position: absolute;
bottom: 22px;
left: 25px;
}
.slide {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
}
.slide-header {
clear: both;
padding: 20px 20px;
}
.slide-1 {
background: url(../img/bg-slide-1.jpg) #6c5247;
background-repeat: no-repeat;
background-position: 100%;
}
.slide-2 {
background: url(../img/bg-slide-2.jpg) yellow;
background-repeat: no-repeat;
background-position: 100%;
}
.slide-3 {
background: red;
background-repeat: no-repeat;
background-position: 100%;
}
.slide-4 {
background: blue;
background-repeat: no-repeat;
background-position:...
JavaScript
var slide = document.querySelectorAll(".slide");
var prev = document.querySelector(".slide-prev");
var next = document.querySelector(".slide-next");
var control = document.querySelectorAll(".slider-controls > i");
var i = 0;
prev.style.display = "none";
next.addEventListener("click", function() {
i = i + 1;
prev.style.display = "block";
slide[i-1].classList.toggle("slide-active");
slide[i].classList.toggle("slide-active");
control[i-1].classList.toggle("active");
control[i].classList.toggle("active");
if (i == (slide.length - 1)) { next.style.display = "none"; }
} );
prev.addEventListener("click", function() {
if (i == 1) { prev.style.display = "none"; }
i = i - 1;
next.style.display = "block";
slide[i+1].classList.toggle("slide-active");
slide[i].classList.toggle("slide-active");
control[i+1].classList.toggle("active");
control[i].classList.toggle("active");
} );