JSFiddle - React, Tailwind, and code Playground
by kot_mapku3
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div class="slider-box">
<div class="slider">
<img src="https://habrastorage.org/webt/dh/yd/hj/dhydhjaripged33h58th-5owuge.jpeg" alt="">
<img src="https://habrastorage.org/webt/r3/po/hl/r3pohlfmzq_y_2gyh25pktgc1d4.jpeg" alt="">
<img src="https://habrastorage.org/webt/lz/zt/3k/lzzt3kmplxqayfrr5mks48i94zq.jpeg" alt="">
<img src="https://habrastorage.org/webt/pw/0t/fi/pw0tfiwpmcbajmhw8br3dq4yk2c.jpeg" alt="">
<img src="https://habrastorage.org/webt/a3/x4/w6/a3x4w6qr6vclws9tjckdynybg6c.jpeg" alt="">
<img src="https://habrastorage.org/webt/lg/qc/y9/lgqcy9zzt7s36vznrjql2i3n4hy.jpeg" alt="">
<img src="https://habrastorage.org/webt/vn/qh/yv/vnqhyvvoc8ea8pw8qghk4qfflzs.jpeg" alt="">
<img src="https://habrastorage.org/webt/dh/yd/hj/dhydhjaripged33h58th-5owuge.jpeg" alt="">
<img src="https://habrastorage.org/webt/r3/po/hl/r3pohlfmzq_y_2gyh25pktgc1d4.jpeg" alt="">
</div>
</div>
</body>
</html>
CSS
* {
margin: 0;
padding: 0;
}
.slider-box {
width: 1280px;
height: 400px;
overflow: hidden;
}
.slider {
height: 400px;
}
img {
width: 1280px;
height: 400px;
float: left;
}
JavaScript
$(document).ready(function () {
let imgCount = $('.slider img').length - 2;
console.log('image count -> ' + imgCount);
let sliderWidth = parseInt($('.slider-box').css('width'));
console.log('slider width -> ' + sliderWidth);
let direction = 1; // 1 - right, -1 - left
$('.slider').css({
'margin-left': -sliderWidth,
'width': sliderWidth * (imgCount + 1)
});
setInterval(function keks() {
let sliderMargin = parseInt($('.slider').css('margin-left'));
console.log('slider margin -> ' + sliderMargin);
if (sliderMargin == -sliderWidth * (imgCount) && direction > 0) {
sliderMargin = 0;
$('.slider').css('margin-left', sliderMargin);
}
else if (sliderMargin == 0 && direction < 0) {
sliderMargin = -sliderWidth * (imgCount);
$('.slider').css('margin-left', sliderMargin);
}
sliderMargin -= direction * sliderWidth;
console.log('slider margin after animate -> ' + sliderMargin);
$('.slider').animate({
'margin-left': sliderMargin
}, 1000);
}, 2000);
$('.slider-box').click(function () {
direction *= (-1);
console.log(direction);
});
});