【问题标题】:Jquery Flexslider Add and Remove Class on Slide ChangeJquery Flexslider 在幻灯片更改上添加和删除类
【发布时间】:2013-02-01 04:43:58
【问题描述】:

我正在使用 jquery 插件Flexslider。我正在使用轮播作为滑块的导航。我试图在页面加载时向第一个轮播元素添加一个 css 类“活动”,然后在用户选择另一个元素时从第一个元素中删除“活动”类并将“活动”类添加到下一个元素用户选择。

轮播作为导航可以正常工作,但是当我使用轮播中的“开始功能”来添加活动类时,如下所示,滑块停止移动并仅停留在一张幻灯片上。奇怪的是,它可以点击 3-4 次,然后就不会继续移动了......

想法?

Javascript

<script type="text/javascript" charset="utf-8">
    $(window).load(function() {
        // The slider being synced must be initialized first
        $('#clientthumbs').flexslider({
            animation: "slide",
            controlNav: false,
            animationLoop: true,
            directionNav: true, 
            slideshow: false,
            itemWidth: 210,
            itemMargin: 20,
            asNavFor: '#clienttestimonials',
            start : function(slider) {
                $('#clientthumbs li').click(function(event) {
                 event.preventDefault();                     
                 $('#clientthumbs li').removeClass('active');                    
                 $(this).addClass('active');
                 $('.flexslider').show();
                 var slideTo = $(this).attr("rel"); //Grab rel value from link;
                 var slideToInt = parseInt(slideTo); 
                 if (slider.currentSlide != slideToInt) {
                    $(this).addClass('active');
                    slider.flexAnimate(slideToInt) //Move the slider to the correct slide (Unless the slider is also already showing the slide we want);
                 }


                });
               }  
        });

        $('#clienttestimonials').flexslider({
            animation: "slide",
            controlNav: false,
            directionNav: false, 
            animationLoop: false,
            slideshow: false,
            sync: "#clientthumbs"
        });
    });
</script>

HTML

<div id="clientthumbs" class="flexslider">
  <ul class="slides">
    <li class="client1"></li>
    <li class="client2"></li>
  </ul>
</div>

<div  id="clienttestimonials" class="flexslider">
  <ul class="slides">
    <li>
      <div class="clientpicsandquotes">  
      </div>       
    </li>
    <li>
      <div class="clientpicsandquotes"> 
      </div>   
    </li>
  </ul>
</div>

【问题讨论】:

  • 您是否在滑块中一次显示一张图像?在这种情况下,不需要添加活动类,因为 FlexSlider 本身已经提供了一个。是这种情况还是不同?
  • 不,我正在尝试更改一次显示多个图像的轮播图像之一的类别。轮播充当滑块的导航

标签: javascript jquery slider flexslider


【解决方案1】:

尝试为#clientthumbs li 项目和#clienttestimonials li 项目添加一个rel 标签,并确保它们匹配。然后将您的启动功能替换为:

start : function(slider) {
   $('#clientthumbs li').click(function(event) {
    event.preventDefault();                     
    $('#clientthumbs li').removeClass('active');                    
    $(this).addClass('active');
    $('.flexslider').show();
    var slideTo = $(this).attr("rel"); //Grab rel value from link;
    var slideToInt = parseInt(slideTo); 
    if (slider.currentSlide != slideToInt) {
       $(this).addClass('active');
       slider.flexAnimate(slideToInt) //Move the slider to the correct slide (Unless the slider is also already showing the slide we want);
    }


}
    });

【讨论】:

  • 我无法将其用作 flexslider 功能。加载时会破坏滑块。这是插件的网站woothemes.com/flexslider
  • 抱歉,我错过了点击功能的右括号。这可能会有所帮助。
  • 好的......所以如果我将右括号移动到最后一个括号内,那么重新查看它确实有效。但是,滑块不会为它在 asNavFor 中用作导航的幻灯片设置动画:'#clienttestimonials' ...我将重新发布我的新代码
  • 看来如果我添加了选项“slideshow: true”,效果很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-21
相关资源
最近更新 更多