JSFiddle - React, Tailwind, and code Playground

by Денис Ковальчук

HTML

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>


<div id="pageContainer">
  <!-- Slideshow HTML -->
  <div id="slideshow">
    <div id="slidesContainer">
      <div class="slide">
       
       <div id="sales1"><div class="imgbox" onclick="buy2()"><img src="http://cs312728.vk.me/v312728349/81f5/5oSO-UZdqDQ.jpg" width="640" height="360"></div></div>
  
  		
			<script>
            var sales_div = document.getElementById("sales1");
            function buy2(){
            sales1.innerHTML = '<div class="imgbox"><iframe width="640" height="360" src="http://www.youtube.com/embed/CgBcloPdJjg?rel=0&autoplay=1" frameborder="0" allowfullscreen></iframe></div>';
            }
            function cancel(){
            sales1.innerHTML = '<div class="imgbox" onclick="buy2()"><img src="http://cs312728.vk.me/v312728349/81f5/5oSO-UZdqDQ.jpg" width="640" height="360"></div>';
            }
            </script>
      </div>
      
      
      <div class="slide">
        <div id="sales2"><div class="imgbox" onclick="buy()"><img src="http://cs312728.vk.me/v312728349/81fd/rNsbgmc8tEs.jpg" width="640" height="360"></div></div>
  
  		
			<script>
            var sales_div = document.getElementById("sales2");
            function buy(){
            sales2.innerHTML = '<div class="imgbox"><iframe width="640" height="360" src="http://www.youtube.com/embed/CgBcloPdJjg?rel=0&autoplay=1" frameborder="0" allowfullscreen></iframe></div>';
            }
            function cancel2(){
            sales2.innerHTML = '<div class="imgbox" onclick="buy()"><img src="http://cs312728.vk.me/v312728349/81fd/rNsbgmc8tEs.jpg" width="640" height="360"></div>';
            }
            </script>
      </div>
      </div>
      <div class="slide">
		<div id="sales3"><div class="imgbox" onclick="buy3()"><img src="http://cs312728.vk.me/v312728349/81f5/5oSO-UZdqDQ.jpg" width="640" height="360"></div></div>
  
  		
			<script>
           ...

CSS

<!--
/** 
 * Slideshow style rules.
 */
#slideshow {
	margin:0 auto;
	width:640px;
	height:360px;
	
	position:relative;
}
#slideshow #slidesContainer {
  margin:0 auto;
  width:625px;
  height:360px;
  overflow:auto; /* allow scrollbar */
  position:relative;
}
#slideshow #slidesContainer .slide {
  margin:0 auto;
  width:640px; /* reduce by 20 pixels of #slidesContainer to avoid horizontal scroll */
  height:360px;
}

/** 
 * Slideshow controls style rules.
 */
.control {
  display:block;
  width:54px;
  height:360px;
  text-indent:-10000px;
  position:absolute;
  cursor: pointer;
}
#leftControl {
  top:0;
  left:20px;
  z-index:2;
}
.leftbox {
	margin: 135px 0px 0px 0px;
	background: url(left_buttom.png)no-repeat 0 0;
	width:54px;
	height:54px;
	display:block; }
	
#rightControl {
  top:0;
  right:20px;
  z-index:2;
}

.rightbox{
	display:none;
	margin: 135px 0px 0px 0px;
	background:url(http://app.city-gamer.ru/templates/Gemini/img/right_bottom.png) no-repeat 0 0;
	/*display: block;*/
	width:54px;
	height:54px;}
	
#rightControl:hover .rightbox{
	display: block;
}

/** 
 * Style rules for Demo page
 */
* {
  margin:0;
  padding:0;
  font:normal 11px Verdana, Geneva, sans-serif;
  color:#ccc;
}
a {
  color: #fff;
  font-weight:bold;
  text-decoration:none;
}
a:hover {
  text-decoration:underline;
}

#pageContainer {
  margin:0 auto;
  width:960px;
}
#pageContainer h1 {
  display:block;
  width:960px;
  height:114px;
  text-indent: -10000px;
}
.slide h2, .slide p {
  margin:15px;
}
.slide h2 {
  font:italic 24px Georgia, "Times New Roman", Times, serif;
  color:#ccc;
  letter-spacing:-1px;
}
.slide img {
  float:right;
  margin:0 15px;
}

JavaScript

$(document).ready(function(){
  var currentPosition = 0;
  var slideWidth = 640;
  var slides = $('.slide');
  var numberOfSlides = slides.length;

  // Remove scrollbar in JS
  $('#slidesContainer').css('overflow', 'hidden');

  // Wrap all .slides with #slideInner div
  slides
    .wrapAll('<div id="slideInner"></div>')
    // Float left to display horizontally, readjust .slides width
	.css({
      'float' : 'left',
      'width' : slideWidth
    });

  // Set #slideInner width equal to total width of all slides
  $('#slideInner').css('width', slideWidth * numberOfSlides);

  // Insert controls in the DOM
  $('#slideshow')
    .prepend('<span class="control" onclick="cancel();cancel2();cancel3()" id="leftControl"><span class="leftbox"></span></span>')
    .append('<span class="control" id="rightControl"><span class="rightbox" onclick="cancel();cancel2();cancel3()"></span></span>');

  // Hide left arrow control on first load
  manageControls(currentPosition);

  // Create event listeners for .controls clicks
  $('.control')
    .bind('click', function(){
    // Determine new position
	currentPosition = ($(this).attr('id')=='rightControl') ? currentPosition+1 : currentPosition-1;
    
	// Hide / show controls
    manageControls(currentPosition);
    // Move slideInner using margin-left
    $('#slideInner').animate({
      'marginLeft' : slideWidth*(-currentPosition)
    });
  });

  // manageControls: Hides and Shows controls depending on currentPosition
  function manageControls(position){
    // Hide left arrow if position is first slide
	if(position==0){ $('#leftControl').hide() } else{ $('#leftControl').show() }
	// Hide right arrow if position is last slide
    if(position==numberOfSlides-1){ $('#rightControl').hide() } else{ $('#rightControl').show() }
  }	
});