JSFiddle - React, Tailwind, and code Playground

by asifrc

HTML

<div class="slider">
    <div id="slide_1" class="slide" style="background-color:red;"></div>
    <div id="slide_2" class="slide" style="background-color:blue;"></div>
    <div id="slide_3" class="slide" style="background-color:yellow;"></div>
    <div id="slide_4" class="slide" style="background-color:green;"></div>
</div>
  
<a id="toggle" href="javascript:slider.toggle();">Toggle Div Visibility</a>

CSS

.slide {
float: left;
width: 200px;
height: 200px;

}

.slider{
width: 600px;
height: 200px;
}

.sliderHidden
{
    display: none;
}

JavaScript

sliderClass = function(selector, visible) {
    //visible is the number of divs that should be visible at a given time
    this.index = 0;
    this.visible = visible;
    this.selector = '.'+selector;
	this.toggle = (function(obj) {
		return function() {
            console.log(obj.selector+' - executing toggle');
            var total =  $(obj.selector).length;
			$(obj.selector).each(function(i) {
				var min = obj.index;
				var max = (min + obj.visible)%(total);
                console.log('each: '+i);
                console.log('i:'+i+'; max:'+max+'; min:'+min);
                console.log( (i>=min && i<max) + ' - ' + (i>=min && i<max) );
				if ( (i>=min && i<max) || ( (max<=min) && ( (i<max) || (i>=min) ) ) )
				{
					$(this).removeClass('sliderHidden');
				}
                else
				{
					$(this).addClass('sliderHidden');
				}
			});
            obj.index = (obj.index+1)%total;
		};
	})(this);
    this.toggle();
}

//Initialize new slider
slider = new sliderClass('slide', 3);