0

I've created a slideshow to put in the beggining of my website but, as I am new in this stuff, I've created it connecting snippets I've found in some websites, and now the image transition style is fade and I want to change it to slide, and I don't know how to do it. Can anyone help me, please? Here is the slider code:

    <div class="slider" id="main-slider">
  <!-- outermost container element -->
  <div class="slider-wrapper">
    <!-- innermost wrapper element -->
    <img src="http://lorempixel.com/1024/400/animals" alt="First" class="slide" style="width:100%" />
    <!-- slides -->
    <img src="http://lorempixel.com/1024/400/business" alt="Second" class="slide" style="width:100%" />
    <img src="http://lorempixel.com/1024/400/city" alt="Third" class="slide" style="width:100%" />
    <a class="prev" onclick="plusSlides(-1)">&#10094;</a>
    <a class="next" onclick="plusSlides(1)">&#10095;</a>
  </div>
</div>

<script type="text/javascript">
  (function() {

    function Slideshow(element) {
      this.el = document.querySelector(element);
      this.init();
    }

    Slideshow.prototype = {
      init: function() {
        this.wrapper = this.el.querySelector(".slider-wrapper");
        this.slides = this.el.querySelectorAll(".slide");
        this.previous = this.el.querySelector(".slider-previous");
        this.next = this.el.querySelector(".slider-next");
        this.index = 0;
        this.total = this.slides.length;
        this.timer = null;
        this.nextButton = this.el.querySelector(".next");
        this.prevButton = this.el.querySelector(".prev");

        this.action();
        this.stopStart();
        this.nextSlide();
        this.prevSlide();
      },
      _slideTo: function(slide) {
        var currentSlide = this.slides[slide];
        currentSlide.style.opacity = 1;

        for (var i = 0; i < this.slides.length; i++) {
          var slide = this.slides[i];
          if (slide !== currentSlide) {
            slide.style.opacity = 0;
          }
        }
      },
      action: function() {
        var self = this;
        self.timer = setInterval(function() {
          self.index++;
          if (self.index == self.slides.length) {
            self.index = 0;
          }
          self._slideTo(self.index);

        }, 10000);
      },
      stopStart: function() {
        var self = this;
        self.el.addEventListener("mouseover", function() {
          clearInterval(self.timer);
          self.timer = null;

        }, false);
        self.el.addEventListener("mouseout", function() {
          self.action();

        }, false);
      },
      nextSlide: function() {
        var self = this;
        self.nextButton.addEventListener("click", function() {
          clearInterval(self.timer);
          self.timer = null;
          self.index++;
          if (self.index == self.slides.length) {
            self.index = 0;
          }
          self._slideTo(self.index);

        });
      },
      prevSlide: function() {
        var self = this;
        self.prevButton.addEventListener("click", function() {
          clearInterval(self.timer);
          self.timer = null;
          self.index--;
          if (self.index == -1) {
            self.index = self.slides.length - 1;
          }

          self._slideTo(self.index);

        });
      }


    };

    document.addEventListener("DOMContentLoaded", function() {

      var slider = new Slideshow("#main-slider");

    });


  })();
</script>
<style type="text/css">
html,
body {
  margin: 0;
  padding: 0;
}

.slider {
  width: 100%;
}

.slider-wrapper {
  width: 100%;
  height: 500px;
  position: relative;
}

.slide {
  float: left;
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 3s linear;
}

.slider-wrapper>.slide:first-child {
  opacity: 1;
}


/* Next & previous buttons */

.prev,
.next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  margin-top: -22px;
  padding: 16px;
  color: black;
  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;
}

@media screen and (max-width: 480px) {
  img {
    max-height: 300px
  }
  .prev,
  .next {
    top=30%
  }
}
</style>

Thanks,

Tom

Tom Davies
  • 31
  • 2
  • 9
  • Check this out: https://stackoverflow.com/questions/19231678/how-can-i-change-the-sliding-animation-to-fade-in-out-with-transition-on-bootstr – Fotis Grigorakis Jul 25 '17 at 12:02
  • 1
    You can't just "change" that. The slider you're using only got a fade effect. If you want that slide effect, try a slider like [this](https://codepen.io/zuraizm/pen/vGDHl) – Tobias Glaus Jul 25 '17 at 12:03
  • I work that in Html and Bootstrap 3 Is this useful to you or Not? if Yes this is the example here: https://codepen.io/transportedman/pen/NPWRGq – Feras Al Sous Jul 25 '17 at 12:03
  • 1
    The answer @TobiasGlaus provided is probably closest to what you're looking for. Good work. – Dead Community Jul 25 '17 at 12:12

0 Answers0