0

次のように、非常に単純なアニメーションを実行しています。

$("article").animate({
    left:"-=70"
},1000)

これは機能し、現在の「左」の値から 70px を引きます。しかし問題は、それをパーセンテージにする必要があることです:

$("article").animate({
    left:"-=70%"
},1000)

もちろん、これはうまくいきません。回避策はありますか?

ありがとう!

編集: jsfiddle を追加:

http://jsfiddle.net/ZsU37/

4

1 に答える 1

1

上記を試しても機能しない場合は、実際の値を計算してみてください。

$("article").animate({
  left: parseInt($(this).css('left'),10)*0.3
},1000)

説明:パーツを削除するために渡さ$(this).css('left')れる、と同様の現在の値を取得し、0.3を掛けてその30%を取得する必要があります(-70%の意味であると仮定します)125pxparseIntpx

編集:ここで機能するフィドルを参照してくださいhttp://jsfiddle.net/demaf/。注意してください:

  • クリックハンドラーを使用しているため、使用できなくなったためthis、に変更しました$('article')
  • アニメーション化する要素は、左の初期値がゼロ以外である必要があります(そうでない場合、数学は0の値を与え、アニメーションは発生しません)
  • 要素はleft値を使用する必要があるため、それに応じてposition編集する必要があります
于 2013-03-18T18:34:08.717 に答える