JSFiddle - React, Tailwind, and code Playground

by Qwerty_Wasd

HTML

<div id="main">
    
    
    <div class="slider">
        <div class="slide-list">
            <div class="slide-wrap">
                <div class="slide-item">
                    <img width="280" height="187" src="https://dummyimage.com/280x187/c4d494/000000.png" alt="" />
                    <span class="slide-title">Первый слайд</span>
                </div>
                <div class="slide-item">
                    <img width="280" height="187" src="https://dummyimage.com/280x187/94d4b3/000000.png" alt="" />
                    <span class="slide-title">Ну просто очень длинное название второго слайда</span>
                </div>
                <div class="slide-item">
                    <img width="280" height="187" src="https://dummyimage.com/280x187/d494b7/000000.png" alt="" />
                    <span class="slide-title">Третий слайд</span>
                </div>
                <div class="slide-item">
                    <img width="280" height="187" src="https://dummyimage.com/280x187/94aed4/000000.png" alt="" />
                    <span class="slide-title">Четвертый слайд</span>
                </div>
                <div class="slide-item">
                    <img width="280" height="187" src="https://dummyimage.com/280x187/cccccc/000000.png" alt="" />
                    <span class="slide-title">Пятый слайд</span>
                </div>
                
                
            </div>
            <div class="clear"></div>
        </div>
        <div class="navy prev-slide"></div>
        <div class="navy next-slide"></div>
        <div class="auto play"></div>
    </div>
    
 
</div>

CSS

/* = Общие стили HTM */
body {
    padding: 0 0 50em 0;
    margin: 0;
    font: 14px/1.8 Helvetica;
    color: #444;
    background-color: #dbdbdb;
}
a {text-decoration: none;}
 
header {
    display: block;
    position: relative; 
    margin: 0; 
    background: #f9f9f9;
}       
.back { font:normal 3em 'Agency FB'; color: #0074A3; position:absolute; top: 10px; right: 10%;}
.back:hover {text-decoration: underline;}
h1 {margin: 0 0 0 2em;}
h1 a { display: inline-block; font: normal 3em 'Agency FB'; text-decoration: none; }
.how { color: #990000; }
.to { color: #0074A3; }
.make { color: #006600; }
.demo { font: normal 2em 'Agency FB';}
 
/* main */
#main {
    width: 94%;
    padding: 1% 3%;
    
}
#main h1 { 
    text-align: center;
    font: 2em Helvetica; 
    margin: 20px 0 10px 0;
    padding-bottom: 15px;
    border-bottom: 2px solid #444444; 
}
/* Задаем сброс обтекания */
.clear {
    margin-top: -1px;
    height: 1px;
    clear:both;
    zoom: 1;
}       
/* Slider */
.slider {
    /* Ширина контейнера */
    width: 900px;
    /* Внешние тступы сверху и снизу */
    margin: 50px auto;
    /* Внутренние отступы для ссылок navy */
    padding: 0 30px;
    /* Позиционирование */
    position: relative;
    /* Скроем то что выходит за границы */
    overflow: hidden;
}
/* Двойной клик по ссылкам вперед/назад вызывает выделение всех элементов слайдера,
поэтому предотвращаем это */
.slider::-moz-selection { background: transparent; color: #fff; text-shadow: none; }
.slider::selection { background: transparent; color: #fff; text-shadow: none; }
 
.slide-list {
    position: relative;
    margin: 0;
    padding: 0;
}
.slide-wrap {
    position: relative;
    left: 0px;
    top: 0;
    /* максимально возможная ширина обертки слайдера */
    width: 10000000px;
}
.slide-item {
    /* Ширина слайда */
    width: 280px;
    /* Внутренние отступы */
    padding: 10px;
    /* Обтекание */
    float: left;
}
.slide-title {
    /* Шрифт */
    font: bold 16px...

JavaScript

jQuery(document).ready(function(){
    function htmSlider(){
        /* Зададим следующие переменные */
 
        /* обертка слайдера */
        var slideWrap = jQuery('.slide-wrap');
        /* ссылки на предудыщий иследующий слайд */
        var nextLink = jQuery('.next-slide');
        var prevLink = jQuery('.prev-slide');
 
        var playLink = jQuery('.auto');
        
        var is_animate = false;
        
        /* ширина слайда с отступами */
        var slideWidth = jQuery('.slide-item').outerWidth();
        
        /* смещение слайдера */
        var newLeftPos = slideWrap.position().left - slideWidth;
        
        /* Клик по ссылке на следующий слайд */
        nextLink.click(function(){
            if(!slideWrap.is(':animated')) {
    
                slideWrap.animate({left: newLeftPos}, 500, function(){
                    slideWrap
                        .find('.slide-item:first')
                        .appendTo(slideWrap)
                        .parent()
                        .css({'left': 0});
                });
 
            }
        });
 
        /* Клик по ссылке на предыдующий слайд */
        prevLink.click(function(){
            if(!slideWrap.is(':animated')) {
            
                slideWrap
                    .css({'left': newLeftPos})
                    .find('.slide-item:last')
                    .prependTo(slideWrap)
                    .parent()
                    .animate({left: 0}, 500);
 
            }
        });
        
        
        /* Функция автоматической прокрутки слайдера */
        function autoplay(){
            if(!is_animate){
                is_animate = true;
                slideWrap.animate({left: newLeftPos}, 5000, function(){
                    slideWrap
                        .find('.slide-item:first')
                        .appendTo(slideWrap)
                        .parent()
                        .css({'left': 0});
                    is_animate = false;
              ...