2

我正在尝试在轮播中显示的第一张幻灯片上使轮播显示为选择状态。

JSFiddle
演示

HTML

<div id='mySwipe' style='max-width:500px;margin:0 auto' class='swipe'>
  <div class='swipe-wrap'>
    <div><b>0</b></div>
    <div><b>1</b></div>
    <div><b>2</b></div>
    <div><b>3</b></div>
    <div><b>4</b></div>
    <div><b>5</b></div>
  </div>
</div>

<nav>
    <ul id="nav">
    <li>0</li>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    </ul>
</nav>

<div style='text-align:center;padding-top:20px;'>
  
  <button id ="mySwipePrev">prev</button> 
  <button id ="mySwipeNext">next</button>

</div>
4

1 回答 1

2

您可以使用以下方法将selected类添加到第一个li元素:

$("#nav li").eq(0).addClass("selected");

然后我修改了callback函数中的代码以选择基于index而不是index-1

$Elements.eq(index).addClass("selected");

然后我修改了代码以防prevnext按钮单击事件基于mySwipe.getPos()而不是选择mySwipe.getPos()-1

$('#mySwipePrev').on('click', function () {
       mySwipe.prev();
       $navLi.removeClass('selected');
       $navLi.eq(mySwipe.getPos()).addClass('selected');
   });
   $('#mySwipeNext').on('click', function () {
       mySwipe.next();
       $navLi.removeClass('selected');
       $navLi.eq(mySwipe.getPos()).addClass('selected');
   }); 

并在单击导航 li 元素(0,1,2,3,4..)时,使用$(this).index()代替$(this).index()+1(这将为索引添加 +1)

$navLi.on ('click', function () {
        window.mySwipe.slide($(this).index(), 200);
        
        $(this).siblings().removeClass('selected');
        $(this).addClass('selected');
    });

DEMO FIDDLE

于 2013-09-19T18:20:16.633 回答