2013-03-18 48 views
0

我正在做一個很簡單的動畫,就像這樣:jQuery的動畫與百分比

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

這個工作,它substracts從目前的「左」值70像素。 但問題是,我需要的是一個百分比:

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

當然,這是行不通的。任何工作?

謝謝!

編輯:添加一個的jsfiddle:

http://jsfiddle.net/ZsU37/

+0

那麼使用寬度計算所需的值呢? – benzonico 2013-03-18 18:33:09

+0

您可以計算大概多少像素70%是基於其父元素的寬度,但我不確定您想要的70%。這是當前的位置?它的父母的寬度? – 2013-03-18 18:34:36

回答

1

假設你已經嘗試了上面並不起作用,你可以嘗試計算實際值:

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

解釋:$(this).css('left')應獲得當前值,類似於125px,這是通過parseInt去除px部分,並乘以0.3得到30%(假設這是你的意思是-70 %)

編輯:看到小提琴在這裏工作http://jsfiddle.net/demaf/。別注:因爲我使用了一個單擊處理

  • ,我可以不再使用this,所以我改成$('article')
  • 元件進行動畫需要具有用於左側的初始值,該值是非零(否則數學將給出0值和不發生的動畫)
  • 元件需要使用left值,因此需要是position編相應地
+0

看起來不錯,但它崩潰,請檢查我設置的jsfiddle。 而現在「左」現在是0,「左:-70%」將其移動到左邊,而「左:30%」移動到右邊。但這當然不重要。用示例擴展的 – monxas 2013-03-18 18:50:36

+0

。爲了使這個方法工作,「left」需要最初有一個明確的非零值。 – hexblot 2013-03-18 20:31:14