0

これが私が達成したいことです。最初のボタンを押すと 50% にフェードアウトし、フェードアウトが完了すると 100% にフェードバックし、別のボタンが押されるまでアニメーションをループし、次のボタンをデンします。まったく同じことをします。ボタンがクリックされるたびに、そっと点滅するだけです.これは可能ですか?

私はこれをいじってきましたが、うまくいきません。

<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>
4

3 に答える 3

1

あなたの問題を解決するjsFiddleを作成しました。コードに適応できると確信しています:http://jsfiddle.net/SFYGX/2/

そこで行ったことを説明しましょう。クリックすると、すべての不透明度が 1 にリセットされ、すべてのアニメーションが停止されます。次に、クリックされた項目をアニメーション化するために再帰ループが開始されます。

(試す前に、現在行っているような重複した ID を使用していないことを確認してください (id="blnk"))

于 2012-04-15T19:20:16.637 に答える
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; } ​

デモ

于 2012-04-15T19:36:11.447 に答える
0

animate 関数には、使用できるコールバックがあります。アニメーションを関数に入れると、コールバックを使用して関数を再度呼び出すことができます。関数内に、何かが発生してループを停止するか、別の関数を呼び出すときに設定されるフラグを含めることができます。

于 2012-04-15T19:22:27.647 に答える