2012-04-15 147 views
0

这就是我想要完成的。 我有两个按钮,当我按下第一个按钮时,它会淡出到50%,当淡出完成时,它会淡出回到100%,然后循环播放动画,直到按下另一个按钮,然后删除下一个按钮按钮完全一样。所以每次点击一个按钮时,它都会轻轻地闪烁...... 这是可行的吗?jQuery按钮淡入循环,直到按下另一个按钮

我一直在玩弄这个,但只是没有得到它的工作。

<html> 

<head> 
    <title></title> 
<style type="text/css"> 
#blnk a { cursor: pointer; } 
</style> 

<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script> 

<script language="JavaScript" type="text/javascript"> 
<!-- 
$("#blnk a img").children().click(function(){ 
      $(this).animate({"backgroundColor":""},500);}, 
    function(){ 
      $(this).animate({"backgroundColor":""},500);}); 
//--> 
</script> 
</head> 

<body> 
    <div id="blnk"><a src="#"><img src="http://www.auviproducciones.com/more/imagenes/imagen5.jpg"></a></div> 
    <div id="blnk"><a src="#"><img src="http://www.auviproducciones.com/more/imagenes/imagen6.jpg"></a></div> 
</body> 
</html> 

回答

1

我做了一个jsFiddle解决了你的问题。我相信你可以将它适应你的代码:http://jsfiddle.net/SFYGX/2/

让我解释我在那里做了什么:点击时,我将所有不透明度重置为1,并停止所有的动画,然后, m启动一个递归循环来为点击的项目设置动画。

(之前尝试它,确保像你现在这样(ID =“BLNK”),你不要使用重复的ID)

+0

天才......它的功能非常棒,超过伟大......完美! 我可以在哪里学习如何做到这一点? – 2012-04-15 19:59:31

0

的动画功能也可以使用一个回调。如果将动画放入函数中,则可以使用回调再次调用该函数。在函数内部,你可以包含一个标志,当某事发生时设置该标志,并停止循环或调用另一个函数。

0

我的解决办法:

的javascript:

$(function() { 
    var currentId; 
    var animate = function(obj) { 
      if (currentId == $(obj).attr('id')) $(obj).fadeTo('slow', 0.5, function() { 
       $(obj).fadeTo('slow', 1); 
       animate(obj); 
      }); 
     } 
    $(".blnk a img").click(function() { 
     currentId = $(this).attr('id'); 
     animate(this); 
    }); 
}); 

HTML:

<div class="blnk"><a src="#"><img id="img1" src="http://www.auviproducciones.com/more/imagenes/imagen5.jpg"></a></div> 
<div class="blnk"><a src="#"><img id="img2" src="http://www.auviproducciones.com/more/imagenes/imagen6.jpg"></a></div> 

CSS:

.blnk a { cursor: pointer; } ​ 

demo