CSS + Javascript交换不同的背景图片

时间:2016-07-03 08:50:14

标签: javascript html css background

我想通过点击更改至少三个横幅(背景图片)。它可以交换两个横幅,但如何按顺序交换三个以上的图像。此外,我想交换图像时有过渡效果。任何人都可以提供帮助。

$(document).ready(function(){
  $("#next-section").click(function(){
    $("#banner").css("background-image", "url('images/top8.jpg')");
  });
});
#banner {
  background-image: url("images/top7.jpg");
  background-position: center center;
  background-size: cover;
  height: 30em;
  text-align: left;
  position: relative;
  -ms-overflow-style: scrollbar;
}
<script src="https://code.jquery.com/jquery-3.0.0.js"></script>
<div id="logo" style="height:200px">
  <section id="banner"  >
    <div id="back-section">
      <a class="back"><span></span></a>
    </div><!-- /.next-section -->
    <div id="next-section" >
      <a class="next"><span></span></a>
    </div><!-- /.next-section -->
    <div class="inner">
      <div class="logo"><h12><img style="vertical-align:middle" src="images/hi5logo.png" alt="" width="50">  Interactive Game </h12> </div>
    </div>
  </section>
</div>

1 个答案:

答案 0 :(得分:0)

我已经设置了一个脚本,以便您的背景从一个数组循环,当到达最后一个背景时,第一个背景设置为下一个背景。

var arrayOfBackgrounds=["http://placehold.it/300x200","http://placehold.it/222x222","http://placehold.it/333x333"];
var currentBackground=0;
$("#next-section").click(function(){
    $("#banner").css("background-image", "url('"+arrayOfBackgrounds[currentBackground]+"')");
        currentBackground++;
        currentBackground=currentBackground % arrayOfBackgrounds.length;
}

currentBackground是背景的索引,显示currentBackground%arrayOfBackgrounds.length的行将索引除以可能的背景数并返回余数。
这就是模数运算符的工作原理:

0 % 3 = 0
1 % 3 = 1
2 % 3 = 2
3 % 3 = 0 (the remainder here is 0)
...

您可以找到完整的代码集以及动画here