导航点不活跃

时间:2014-12-11 10:15:58

标签: jquery css slider

在我的滑块中,我有几个导航点。每次进入新滑块时,下一个点变为蓝色,表示它处于活动状态。我遇到的问题是,当我进入下一张幻灯片时,我的所有点都变为不活动状态。

我的HTML

<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 slider-wrapper">
<div class="banner_wrapper active_banner" style="opacity: 1; left: 0%;">
  <img class="bgwidth" src="http://i.imgur.com/YW5Y1YX.jpg">
</div>
<div class="banner_wrapper inactive_banner" style="opacity: 0; left: 100%;">
  <img class="bgwidth" src="http://i.imgur.com/vFEg6ef.jpg">
</div>
<div class="banner_wrapper inactive_banner" style="opacity: 0; left: -100%;">
  <img class="bgwidth" src="http://i.imgur.com/cEcFlSA.jpg">
</div>
<a class="left-arrow nav_arrows" href="javascript:void(0);">
  <img src="http://i.imgur.com/6UVHSG4.png">
</a>
<a class="right-arrow nav_arrows" href="javascript:void(0);">
  <img src="http://i.imgur.com/pbt7K94.png">
</a>
<div class="banner-nav-wrapper">
  <a class="active_inside" href="javascript:void(0);">
    <span></span>
  </a>
  <a class="inactive_inside" href="javascript:void(0);">
    <span></span>
  </a>
  <a class="inactive_inside" href="javascript:void(0);">
    <span></span>
  </a>
</div>

我的CSS

  html{
  background: black;
  }

  .banner_wrapper img{
   position: absolute;
  }

  .banner-nav-wrapper {
  left: 46%;
  position: absolute;
  top: 80%;
  }

  .banner-nav-wrapper a{
  display:block;
  width:13px;
  height:14px;
  background:url(http://i.imgur.com/J8UrHgn.png) top left no-repeat;
  float:left;
  margin:0 5px 0 0;
  }

  .banner-nav-wrapper a.active_inside span{
  display:block !important;
  background:url(http://i.imgur.com/NxoSIbh.png) top left no-repeat;
  width:100%;
  height:100%;
  }

  .banner-nav-wrapper a.inactive_inside span{
  display:block !important;
  background:url(http://i.imgur.com/J8UrHgn.png) top left no-repeat;
  width:100%;
  height:100%;
  }

  .banner-nav-wrapper a span{
  display:none;   
  width:100%;
  height:100%;
  background:url(http://i.imgur.com/NxoSIbh.png) top left no-repeat;
  }


  .left-arrow {
  background: none repeat scroll 0 0 black;
  left: 5.2%;
  position: absolute;
  top: 27%;
  z-index: 1;
  }

  .left-arrow img{
  position: relative;
  }

  .right-arrow {
  background: none repeat scroll 0 0 black;
  position: absolute;
  right: 5.2%;
  top: 27%;
  }

  .right-arrow img{
  position: relative;
  }

我的JS

  $(".nav_arrows").click(function(){

  $direction = ($(this).hasClass("left-arrow") ? "left" : "right");
  var activeBanner = 100;

  if($direction == "right"){
    $(".inactive_banner").css("left","100%").show();
    activeBanner = -100;
    if($(".active_banner").next(".banner_wrapper").length < 1){
      $(".banner_wrapper").eq(0).animate({"left":0+"%","opacity":1}, 500,function(){
        $(this).addClass("active_banner").removeClass("inactive_banner");
      });
      $(".banner-nav-wrapper a").addClass("active_inside").removeClass("inactive_inside");
    }else{
      $(".active_banner").next().animate({"left":0+"%","opacity":1}, 500,function(){
        $(this).addClass("active_banner").removeClass("inactive_banner");
      });
      $(".banner-nav-wrapper a").addClass("active_inside").removeClass("inactive_inside");        
    }
  }else{ //left
    $(".inactive_banner").css("left","-100%").show().fadeTo(250, 0);
    if($(".active_banner").prev().length < 1){
      $(".banner_wrapper").eq($(".banner_wrapper").length-1).animate({"left":0+"%","opacity":1}, 500,function(){
        $(this).addClass("active_banner").removeClass("inactive_banner");
      });
      $(".banner-nav-wrapper a").addClass("active_inside").removeClass("inactive_inside");        
    }else{
      $(".active_banner").prev().animate({"left":0+"%","opacity":1}, 500,function(){
        $(this).addClass("active_banner").removeClass("inactive_banner");
      });
      $(".banner-nav-wrapper a").addClass("active_inside").removeClass("inactive_inside");        
    }
  }

  $(".active_banner").animate({"left":activeBanner+"%","opacity":0}, 500,function(){
    $(this).addClass("inactive_banner").removeClass("active_banner");
    $(".banner-nav-wrapper a").addClass("inactive_inside").removeClass("active_inside");      
  });
});

以下是演示的链接:CODEPEN

1 个答案:

答案 0 :(得分:0)

问题是你所有的中添加和删除类。而你应该 删除类之前选择的添加课程仅限于下一个。我刚刚添加了查找下一个的机制。 你的JS代码是这样的:

$(".nav_arrows").click(function(){

        $direction = ($(this).hasClass("left-arrow") ? "left" : "right");
        var activeBanner = 100;
        var nextButton;
        if($direction == "right"){
            $(".inactive_banner").css("left","100%").show();
            activeBanner = -100;
            if($(".active_banner").next(".banner_wrapper").length < 1){
                $(".banner_wrapper").eq(0).animate({"left":0+"%","opacity":1}, 500,function(){
                    $(this).addClass("active_banner").removeClass("inactive_banner");
                });
       nextButton = $(".banner-nav-wrapper a").eq(0);

            }else{
                $(".active_banner").next().animate({"left":0+"%","opacity":1}, 500,function(){
                    $(this).addClass("active_banner").removeClass("inactive_banner");
                });
     nextButton = $(".banner-nav-wrapper .active_inside").next();

            }
        }else{ //left
            $(".inactive_banner").css("left","-100%").show().fadeTo(250, 0);
            if($(".active_banner").prevAll().length < 1){
                $(".banner_wrapper").eq($(".banner_wrapper").length-1).animate({"left":0+"%","opacity":1}, 500,function(){
                    $(this).addClass("active_banner").removeClass("inactive_banner");
                });
       nextButton = $(".banner-nav-wrapper a").eq($(".banner_wrapper").length-1);

            }else{
                $(".active_banner").prev().animate({"left":0+"%","opacity":1}, 500,function(){
                    $(this).addClass("active_banner").removeClass("inactive_banner");
                });
        nextButton = $(".banner-nav-wrapper .active_inside").prev();

            }
        }
          $(".active_banner").animate({"left":activeBanner+"%","opacity":0}, 500,function(){
    $(this).addClass("inactive_banner").removeClass("active_banner");
   $(".banner-nav-wrapper .active_inside").addClass("inactive_inside").removeClass("active_inside");
        nextButton.addClass("active_inside").removeClass("inactive_inside");    
  });

    });

以下是演示的链接:CODEPEN