jquery bxslider插件中的自定义分页器

时间:2011-08-19 10:32:59

标签: jquery carousel

我遇到了jQuery的问题,我真的不知道从哪里开始。

基本上我使用bxslider plugin制作旋转木马。

以下是简化的HTML:

<ul id="promos">
    <li>
        <h2>Event Title 1</h2>
    </li>
    <li>
        <h2>Event Title 2</h2>
    </li>
</ul>

和jquery:

$('ul#promos').after('<div id="pager1"></div>');
$('ul#promos').bxSlider({
    displaySlideQty: 1,
    moveSlideQty: 1,
    infiniteLoop: false,
    controls: false, 
    pager: true,
    pagerSelector: '#pager1',
    auto: true,
    pause: 5000,
    speed: 1000
});

这会将输出呈现为:

<ul id="promos">
    <li>
        <h2>Event Title 1</h2>
    </li>
    <li>
        <h2>Event Title 2</h2>
    </li>
</ul>
<div id="pager1">
    <a href="" class="pager-link pager-1 pager-active">1</a>
    <a href="" class="pager-link pager-2">2</a>
</div>

但是,我希望寻呼机使用相对的h2标题,而不是升序数字。理想情况下,它看起来像:

<div id="pager1">
    <a href="" class="pager-link pager-1 pager-active">Event Title 1</a>
    <a href="" class="pager-link pager-2">Event Title 2</a>
</div>

注意:此轮播中最多可以有六个事件。

这是一个例子: http://jsfiddle.net/adrianjacob/gHpBT/3/

任何指示从哪里开始都会非常感激。

3 个答案:

答案 0 :(得分:1)

我在http://bxslider.com/examples/thumbnail-pager-2

上使用了一个示例来解决这个问题

该示例使用“buildPager:”用图像替换标准的1,2,3,4寻呼机,例如:

$(function(){
  $('#slider1').bxSlider({
    pager: true,
    buildPager: function(slideIndex){
      switch (slideIndex){
        case 0:
          return '<a href=""><img src="/sites/all/themes/bx/images/pic_velvet1_thumb.jpg" /></a>';
        case 1:
          return '<a href=""><img src="/sites/all/themes/bx/images/pic_velvet2_thumb.jpg" /></a>';
        case 2:
          return '<a href=""><img src="/sites/all/themes/bx/images/pic_velvet3_thumb.jpg" /></a>';
        case 3:
          return '<a href=""><img src="/sites/all/themes/bx/images/pic_velvet4_thumb.jpg" /></a>';
      }
    }
  });
});

答案 1 :(得分:1)

我刚刚使用bxSlider回调和公共方法构建了自己的寻呼机。

我正在使用haml和coffeescript,但你应该明白这一点。

我在自定义分页器链接上使用data-id属性将该链接绑定到特定幻灯片

HAML

%ul.landing-links
  %li <a href="#" data-id="0" class="active">Slide One</a>
  %li <a href="#" data-id="1">Slide Two</a>

的CoffeeScript

landing_slides = $("#landing-slides").bxSlider
  controls: false,
  auto: true,
  pause: 10000,
  autoHover: true,
  onAfterSlide: (num, qty, obj) ->
    # Switch the active class to the corresponding pager link
    $("ul.landing-links li a.active").removeClass("active")
    $("ul.landing-links li a[data-id=#{num}]").addClass("active")

$('ul.landing-links li a').click (e) ->
  e.preventDefault()
  landing_slides.goToSlide($(this).data('id')) # Get the data-id attribute value
  landing_slides.startShow() # This is needed to restart the auto scroll

答案 2 :(得分:0)

请查看以下html代码的分页

jQuery(document).ready(function(){        
  jQuery('#bxslider1').bxSlider({
    pagerCustom: '#bxsliderlist1'
  });   
});
<ul id="bxslider1">
  <li>
    your contant
  </li>
  <li>
    your contant
  </li>
  <li>
    your contant
  </li>
  <li>
    your contant
  </li>
</ul>
<ul id="bxsliderlist1">
  <li>
    <a data-slide-index="0">your contant</a>
  </li>
   <li>
    <a data-slide-index="1">your contant</a>
  </li>
   <li>
    <a data-slide-index="2">your contant</a>
  </li>
   <li>
    <a data-slide-index="3">your contant</a>
  </li>
  
</ul>