如何将滑块中的过渡样式从淡入淡出更改为幻灯片

时间:2017-07-25 11:59:25

标签: javascript html css slider

我已经创建了一个幻灯片放入我的网站的开头但是,因为我是这个东西的新手,我已经创建了它连接我在某些网站上发现的片段,现在图像过渡风格淡化,我想将其更改为幻灯片,我不知道该怎么做。有人可以帮帮我吗?这是滑块代码:

    <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>

谢谢,

汤姆

0 个答案:

没有答案