title: Automatic slideshow with button
body: <p>I could create the automatic slideshow with a javascript. But I want it not only manual, but control with buttons.</p>
  
  <p>I added some manual controlling code. Then the slideshow was not working properly. This is the code for automatic slide show. How to modify this to work with  buttons. </p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>var slideIndex = 0;
  showSlides();
  
  function showSlides() {
      var i;
      var slides = document.getElementsByClassName("mySlides");
      var dots = document.getElementsByClassName("dot");
      for (i = 0; i &lt; slides.length; i++) {
         slides[i].style.display = "none";  
      }
      slideIndex++;
      if (slideIndex&gt; slides.length) {slideIndex = 1}    
      for (i = 0; i &lt; dots.length; i++) {
          dots[i].className = dots[i].className.replace(" active", "");
      }
      slides[slideIndex-1].style.display = "block";  
      dots[slideIndex-1].className += " active";
      setTimeout(showSlides, 8000); // Change image every 8 seconds
  }</code></pre>
  <pre class="snippet-code-css lang-css prettyprint-override"><code>#slide{
   width:96%;
   }
   
  * {
   box-sizing: border-box
  }
  
  .mySlides {
   display: none
  }
  
  .slideshow-container {
   width: 1200px;
   position: relative;
   margin: -10px;
  
  }
  /* Next &amp; previous buttons */
  .prev, .next {
   cursor: pointer;
   position: absolute;
   top: 50%;
   width: auto;
   padding: 16px;
   margin-top: -22px;
   color: white;
   font-weight: bold;
   font-size: 18px;
   transition: 0.6s ease;
   border-radius: 0 3px 3px 0;
  }
  /* Position the "next button" to the right */
  .next {
   right: 0;
   border-radius: 3px 0 0 3px;
  }
  /* On hover, add a black background color with a little bit see-through */
  .prev:hover, .next:hover {
   background-color: rgba(0,0,0,0.8);
  }
  /* Caption text */
  .text {
   color: #f2f2f2;
   font-size: 15px;
   padding: 8px 12px;
   position: absolute;
   bottom: 8px;
   width: 100%;
   text-align: center;
  }
  
  /* The dots/bullets/indicators */
  .dot {
   cursor: pointer;
   height: 13px;
   width: 13px;
   margin: 0 2px;
   background-color: #bbb;
   border-radius: 50%;
   display: inline-block;
   transition: background-color 0.6s ease;
  }
  .active, .dot:hover {
   background-color: #717171;
  }
  /* Fading animation */
  .fade {
   -webkit-animation-name: fade;
   -webkit-animation-duration: 2s;
   animation-name: fade;
   animation-duration: 2s;
  }
  @-webkit-keyframes fade {
    from {opacity: .4} 
    to {opacity: 1}
  }
  
  @keyframes fade {
    from {opacity: .4} 
    to {opacity: 1}
  }
  
  /* On smaller screens, decrease text size */
  @media only screen and (max-width: 300px) {
    .text {font-size: 11px}
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;div id="slide"&gt;
    &lt;div class="slideshow-container"&gt;
      &lt;div class="mySlides fade"&gt; &lt;img src="../Images/girl.jpg" style="width:100%"&gt; &lt;/div&gt;
      &lt;div class="mySlides fade"&gt; &lt;img src="../Images/bride.jpg" style="width:100%"&gt; &lt;/div&gt;
      &lt;div class="mySlides fade"&gt; &lt;img src="../Images/academy.jpg" style="width:100%"&gt; &lt;/div&gt;
      &lt;div class="mySlides fade"&gt; &lt;img src="../Images/makeup.jpg" style="width:100%"&gt; &lt;/div&gt;
      &lt;a class="prev" onclick="plusSlides(-1)"&gt;&amp;#10094;&lt;/a&gt; &lt;a class="next" onclick="plusSlides(1)"&gt;&amp;#10095;&lt;/a&gt; &lt;/div&gt;
    &lt;br&gt;
    &lt;div style="text-align:center"&gt; 
    &lt;span class="dot" onclick="currentSlide(1)"&gt;&lt;/span&gt; 
    &lt;span class="dot" onclick="currentSlide(2)"&gt;&lt;/span&gt; 
    &lt;span class="dot" onclick="currentSlide(3)"&gt;&lt;/span&gt;
    &lt;span class="dot" onclick="currentSlide(4)"&gt;&lt;/span&gt;
     &lt;/div&gt;</code></pre>
  </div>
  </div>
  </p>