0

我想制作一个带有 5 个盒子的滑块,当每个盒子都在为中间的盒子设置动画时,它会变大,但我无法做到这一点。

这是一个示例代码:

$(".mNext").click(function () {
  var boxCurrent = $(".mBox.current").data("index"),
      dir = $(".mBox:first").data("index");
  if (boxCurrent == boxLength) {
      goFirstBox();
  }
  $(".mBox").each(function (i) {
      var $item = $(this);
      $item.stop().animate({
          left: (dir === 1) ? '-=' + "170" + 'px' : '+=' + "170" + 'px'
      }, 600);
      if ($item.hasClass("mBig")) {

          $(this).removeClass("mBig");
          $(this).find("li:first").addClass("maBig");
      }
  });

如果你想要 JSFiddle 链接:http: //jsfiddle.net/theOne623/hXBQ9/

4

1 回答 1

0

您可以li拨打电话前往下一个

$(this).next();

您的小提琴的问题是您正在将类添加mBig到下一个li,因此当在each循环中找到下一个元素时,它也会找到它,将其删除并将其添加到下一个。

而是保留对新的引用并在循环完成li后添加类。each

更新小提琴:http: //jsfiddle.net/dh8uB/

于 2013-07-22T13:56:30.997 回答