Jquery动画回调影响错误的元素

时间:2010-07-01 18:28:57

标签: javascript jquery jquery-animate

嘿我试图制作一种滑块,但是让循环“重置”时出现问题。这个想法是让元素动画化以淡化不透明度,并在完成时将它们隐藏起来,以便在重置循环后不会触发“.is(:visible)”。然而,回调函数正在影响将其不透明度设置为“1”且在错误时间的元素。我猜这很简单,我不知道动画,因为我有点像jQuery newb。

    $('a#galleryArrow').bind('click', function(){

      wrapper.children().slice(imageSet,(imageSet + 5)).animate({opacity: 0}, function() {$(this).hide();});

      if (wrapper.children(':last-child').is(':visible')) { imageSet = 0; } 
      else { imageSet = imageSet + 5; }

      wrapper.children().slice(imageSet, (imageSet + 5)).css({display: 'block'}).animate({opacity: 1});
      wrapper.animate({left: -(imageSet * 104)});          

      return false; 

});

1 个答案:

答案 0 :(得分:0)

首先尝试将第二个动画移动到第一个动画回调内部,这样它们就不会发生冲突。

$('a#galleryArrow').bind('click', function(){

      wrapper.children()
             .slice(imageSet,(imageSet + 5))
             .animate({opacity: 0}, function() {

                $(this).hide();

                if (wrapper.children(':last-child').is(':visible')) { 
                    imageSet = 0; 
                } 
                else { 
                    imageSet = imageSet + 5; 
                }

                wrapper.children()
                       .slice(imageSet, (imageSet + 5))
                       .css({display: 'block'})
                       .animate({opacity: 1});

                wrapper.animate({left: -(imageSet * 104)});    

          });

      return false; 

});