6

スライドが変更されたときにイベントを発生させなければならない状況に直面していますが、私のスライダーはこれをサポートしていません。前と後の両方がサポートされています ( http://www.woothemes.com/flexslider/#highlighter_298 )

スライドが変更されたときに関数を起動できる方法はありますか?

デモ スライダーの URL は次のとおりです: http://flexslider.woothemes.com/thumbnail-slider.html

    $(window).load(function() {
      // The slider being synced must be initialized first
      $('#carousel').flexslider({
        animation: "slide",
        controlNav: false,
        start: function(){},            //Callback: function(slider) - Fires when the slider loads the first slide
        before: function(){},           //Callback: function(slider) - Fires asynchronously with each slider animation
        after: function(){},            //Callback: function(slider) - Fires after each slider animation completes
        animationLoop: false,
        slideshow: false,
        itemWidth: 210,
        itemMargin: 5,
        asNavFor: '#slider'
      });

      $('#slider').flexslider({
        animation: "slide",
        controlNav: false,
        animationLoop: false,
        slideshow: false,
        sync: "#carousel"
      });
    });

私のスライドには、スライドがアクティブなときに使用したい rel 属性があります (.flex-active-slide がアクティブなスライドに追加されます)。

<div class="flexslider">
  <ul class="slides">
    <li rel="divid1" class="flex-active-slide">
      <img src="slide1.jpg" />
    </li>
    <li rel="divid2">
      <img src="slide2.jpg" />
    </li>
    <li rel="divid3">
      <img src="slide3.jpg" />
    </li>
    <li rel="divid4">
      <img src="slide4.jpg" />
    </li>
    <!-- items mirrored twice, total of 12 -->
  </ul>
</div>

現在の規定 (before: および after:) では、アクティブなスライドの前にあるスライドの rel 属性を取得できます。アクティブなスライドの rel 属性を取得する方法はありますか?

4

1 に答える 1

11

beforeまたはコールバックを使用afterすると、アニメーションが開始または終了するイベントに関数をバインドできます。したがって、スライド アニメーションが終了した後にアクティブなスライドの rel 属性を取得する場合は、そのように呼び出すことができます。

$('#slider').flexslider({
    animation: "slide",
    controlNav: false,
    animationLoop: false,
    after: function(){
        var active_rel = $(this).find('.flex-active-slide').attr('rel');
        //do something
    },
    slideshow: false,
    sync: "#carousel"
});
于 2013-10-05T06:35:43.003 に答える