2010-11-26 13 views
1

スムースアニメーションで、要素El1を1000ミリ秒で(30,40)から(30,30)に移動したいと考えています。それも可能ですか?Javascript滑らかな滑り?

答えて

1

あなたはjQueryのに慣れていない、あなたはそれを使用し、ちょうどいくつかの動きのためにおよそ50キロバイトで、ページサイズを大きくしたくない場合、私はあなたが私の関数のいずれかを使用することをお勧めしている場合:

function smooth(x, max){ 
return Math.floor((Math.sin((x/max*Math.PI)-(Math.PI/2))+1)*max/2); 
} 

とあなたそのような要素を移動するコードが必要です。

function process(LI){ 
    LI = LI || Config.From; 
    LI++; 
    Left = smooth(LI, Config.To) 
    Config.Element.style.left = Left + 'px' 
    if (LI < Config.To) 
    setTimeout ("process("+LI+")", 10); 
} 

Config = { 
Element: document.getElementById('El1'), 
From: 0, 
To: 400 
}; 

process(); 
+0

また、次のような「ダンピング」方法を使用することもできます:position + =(destination-position)/ damping –

1

jqueryライブラリを見てみると、アニメーション機能は探しているものとまったく同じもので、実装が簡単です。

jQueryのhttp://jquery.com/

にあり、アニメーション機能は、特にあなたのコードは「= idを持つ要素がありますことを確認し、この

$('El1').animate({top: "-10px"}), 1000); 
0
$("#moveme").animate({ 
    top: "30px" 
}, 1000); 

ようになります

でありますmoveme "とcss position: absolute

関連する問題