2011-06-07 58 views
1

花式框在启动时停止jquery动画。 我有这样的JS脚本:Fancybox在运行时停止其他jquery动画

 $("a[class=fancybox]").fancybox({ 
      'hideOnContentClick': true, 
      'titlePosition'  : 'outside', 
      'overlayColor'  : '#3d6a87', 
      'overlayOpacity' : 0.9 
     }); 

     $('.portfoliobox').live('mouseenter', function(e) { 
      $(this).closest('.portfoliobox').find('div.portfoliodetails').animate({marginLeft: '0', opacity: 0.8}, 200); 
     }); 

     $('.portfoliobox').live('mouseleave', function(e) {          
      var $widthofdiv = $(this).closest('.portfoliobox').find('.portfoliodetails').width(); 
      $(this).closest('.portfoliobox').find('div.portfoliodetails').animate({marginLeft: $widthofdiv}, 200); 
     // alert($widthofdiv); 
     }); 

当我点击位于内DIV一个的fancybox链接.portfoliodetails在鼠标离开停止播放动画,保持被冻结。

不知道该怎么办? 从我理解我需要使jQuery运行mouseleave动画..但如何?

回答

1

解决这样的:我加了2个调用函数时的fancybox开始,在开始时,当它接近

 $("a[rel=gallery]").fancybox({ 
       'onStart': hidedetails, 
      'onClosed': hidedetails, 
      'titlePosition'  : 'outside', 
      'overlayColor'  : '#3d6a87', 
      'overlayOpacity' : 0.9 
     }); 
1

试试下面的变化,看它是否帮助:

改变动画()调用吼叫:

$(this).closest(...).stop(true, true).animate(...); 

通过这样做,你首先停止所有正在运行的动画,然后运行新的动画,防止任何碰撞。

+0

也许它应该工作,但对我来说,这不......我越来越一样的问题 。当Fancybox弹出时,动画就会停止...并且在关闭fancybox'窗口'后动画不再运行......这就像mouseeneter和mouseleave不再工作。 – 2011-06-07 19:39:23