2011-05-22 14 views
2

矢印が目に見えるように移動し、途中のテキストを削除したいと思います。jQuery単純な左右のアニメーション

http://jsfiddle.net/mplungjan/VZsG4/

<span class="arrow">&rarr;</span>&nbsp;&nbsp;&nbsp;&nbsp;<span id="span0">zhong</span><span id="span2">1</span><span id="span3">guo</span><span id="span4">2</span> 
<br /> 
<input type="button" id="start" value="start" /> 
<input type="button" id="reset" value="reset" /> 

var cnt = 0; 
var spanLength = $("span").length; 
$("#start").click(function() { 
    var tId = setInterval(
    function() { 
     if (cnt>spanLength-1) clearInterval(tId); 
     $(".arrow").animate(
     {"right": $("#span"+(cnt+1)).position()}, "slow", 
      function(){ 
      $("#span"+(cnt++)).hide(); // remove word 
      $("#span"+(cnt++)).hide(); // remove number 
      $(".arrow").animate({"left":0}); // move back 
      } 
    ); 
    }, 
    1000); 
}); 
$("#reset").click(function() { 
    clearInterval(tId); 
    $("span").each(function() { 
     $(this).show(); 
    });  
}); 

答えて

6

あなたはあなたのコードを持ついくつかの問題だった:

  • .arrowをあなたが必要と矢印
  • leftないrightをアニメーション化する必要があるposition:relative
  • とCSSを必要としますleftプロパティを取得するposition()
  • var tIdニーズが.arrow以来
  • スパンをあるより広い範囲にあるように、間隔が
  • は、あなたがに追加する
  • cnt = 0ニーズ欠けている要素のエラーの原因となった#span1をスキップクリアしていないされませんでした。機能リセット

See working fiddle here →

var cnt = 0; 
var spanLength = $("span").length; 
var tId; 
$("#start").click(function() { 
    tId = setInterval(
    function() { 
     if (cnt>=spanLength-1) { 
      clearInterval(tId); 
     } else { 
      $(".arrow").animate(
      {"left": $("#span"+(cnt+1)).position().left}, "slow", 
       function(){ 
       $("#span"+(cnt++)).hide(); // remove word 
       $("#span"+(cnt++)).hide(); // remove number 
       $(".arrow").animate({"left":0}); // move back 
       } 
     ); 
     } 
    }, 
    1000); 
}); 
$("#reset").click(function() { 
    clearInterval(tId); 
    cnt = 0; 
    $("span").each(function() { 
     $(this).show(); 
    });  
}); 
+0

+1、非常に良い説明の方法.. – kobe

+0

説明するための+1非常に良いアプローチ。 –

+0

@mVChr素晴らしい - ほとんど。私は単語の右側にある数字の左に行くために矢印が必要です。それはさらに進んでいるようだ。私は最初のスパンをabに変更しました - http://jsfiddle.net/mplungjan/VZsG4/ – mplungjan

関連する問題