2012-03-16 14 views
1

後、私は.span3の幅に合わせて、流体.span12から<section>の幅の減少をアニメーション化していますwidth属性を削除します。私は現在、それをされてやっている方法 :jQueryの幅アニメーション

$('#searchPanel').animate({width: '23.404255317%'}, 400); 
$('#searchPanel').removeClass('span12'); 
$('#searchPanel').addClass('span3'); 

問題は、アニメーションに設定された幅が.span3のクラスをオーバーライドされています。何が起こっている反応のあるものを台無しにしている。

は、どのように私はそれをアニメーション化した後、その幅を取り除くのですか?私はjqueryのUIが.switchclass持っていることを知っているが、私は

はありがとう...私はちょうどダムの方法でこれをやっていると、このようなことを行う方法を知っておくべきと思っています!

更新: それが最善の解決策ではないかもしれませんが、私はそれがコールバックを追加し、「スタイル」属性を削除することで動作するようになった:

$('#searchPanel').animate({width: '23.404255317%'}, 400, 'swing', function() { 
    $(this).removeAttr('style').removeClass('span12').addClass('span3'); 
}); 
+0

フィドル、ソリューション、高速 –

+0

おかげで、UPDを得るのを助けます私の問題を解決しました。それを解決策として追加し、それを自分で受け入れるべきです。 – shailenTJ

答えて

1

あなたは

$('#searchPanel') 
.animate({width: '23.404255317%'}, 400) 
.removeClass('span12') 
.addClass('span3') 
.removeAttr('width'); 

を試してみましたまた、要素$( '#のsearchPanel」)のために一度だけ検索し、他の方法をチェーンに覚えている。

+0

は連鎖先端をありがとう!それは私のコードをたくさんクリーンアップするつもりです。私はそれを理解し、コールバックの中にすべてを入れる必要がありました。代わりに、「幅」私は削除するために必要な「スタイル」を取り除くの – adplusverb

+0

あなたは正しいです、私はアニメーションでコールバックを忘れて、また、あなたはデイベントが複数回trigeredされた場合には、jQueryのアニメーションキューを考慮する必要があります。 – demve

関連する問題