jquery手写焦点轮播图-------解决最后一张无缝跳转第一张的问题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>轮播图</title>
    <style>
        *{padding: 0;margin: 0;list-style-type: none;}
        .wrap{width: 520px;height: 280px;margin: 50px auto;}
        .banner{width: 520px;height: 280px;overflow: hidden;position: relative;}
        .imgList{width: 1560px;height: 280px;overflow: hidden;position: absolute;left: 0;}
        .imgList li{float: left;width: 520px;height: 280px;}
        #left,#right{position: absolute;top: 120px;z-index: 50;cursor: pointer;}
        #left{left: 0px;}
        #right{right: 0px;}
    </style>
</head>
<body>
    <div class="wrap">
        <div class="banner">
            <ul class="imgList">
                <li><img src="img/ban01.png"></li>
                <li><img src="img/ban02.png"></li>
                <li><img src="img/ban03.png"></li>
            </ul>
            <img src="img/left.png" id="left">
            <img src="img/right.png" id="right">
        </div>
    </div>

  <script type="text/javascript" src="jquery.min.js"></script>
  <script type="text/javascript">

/*.....这样写无法实现最后一张无缝跳转第一张......*/
/*      var curIndex = 0;
      var imgLen = $(".imgList li").length;
      var autoChange = setInterval(function(){
          if(curIndex<imgLen-1)
              {
                  curIndex++;}
          else{
              curIndex = 0;}
          changeTo(curIndex);
      },2500);
      function changeTo(index){
          var goLeft = index * 520;
          $(".imgList").animate({left:"-" + goLeft + "px"},500);
      }*/

/*.....这样写可以实现最后一张无缝跳转第一张(原理就是把第一张克隆到最后一张后面)......*/
    var timer = setInterval(function() {
                $(".imgList").animate({
                    "left": "-520px"
                }, 500, function(){
                    $(".imgList").children("li:first").insertAfter($(".imgList").children("li:last"));
                    $(".imgList").css("left", 0);
                });
            }, 2500);

下面这种写法等同上面,只是insertAfter那里写法不一样。
/* var timer = setInterval(function() { $(".imgList").animate({ "left": "-520px" }, 500, function(){ $(".imgList li:first").insertAfter($(".imgList li:last")); $(".imgList").css("left", 0); }); }, 2500);*/ </script> </body> </html>

 

posted @ 2016-08-22 11:07  SophiaLiu  阅读(1574)  评论(0编辑  收藏  举报