我從股利點擊獲取方向和,試圖將此傳遞到動畫功能jQuery的傳遞方向動畫()
var direction = $(this).attr('class').split(' ')[1];
var scrollAmount = 285;
$('#slider').animate({direction:'-=' + scrollAmount}, 'slow');
有什麼不對?
由於
我從股利點擊獲取方向和,試圖將此傳遞到動畫功能jQuery的傳遞方向動畫()
var direction = $(this).attr('class').split(' ')[1];
var scrollAmount = 285;
$('#slider').animate({direction:'-=' + scrollAmount}, 'slow');
有什麼不對?
由於
動畫函數的第一個參數需要在CSS屬性中聲明動畫結尾的最終屬性。你不能以這種方式傳遞方向。這聽起來像你要麼設置左或scrollLeft的金額,並改變方向,那麼你應該看看方向的價值,並使用 - =或+ =取決於你想去的方式。
var sign;
if (direction == 'left') sign = '-=';
else sign = '+=';
$('#slider').animate({left:sign + scrollAmount}, 'slow');
,或者如果它的屬性,你試圖傳遞
var prop = {};
prop[direction] = scrollAmount;
$('#slider').animate(prop, 'slow');
有一個在animate
沒有這樣的屬性稱爲方向因此錯誤。檢查documentation。
編輯按評論
那麼你應該通過向左或向右的CSS作爲第一個參數,從jQuery的動畫
示例代碼動畫API文檔
<!DOCTYPE html> <html> <head> <style> div { position:absolute; background-color:#abc; left:50px; width:90px; height:90px; margin:5px; } </style> <script src="http://code.jquery.com/jquery-latest.js"></script> </head> <body> <button id="left">«</button> <button id="right">»</button> <div class="block"></div> <script> $("#right").click(function(){ $(".block").animate({"left": "+=50px"}, "slow"); }); $("#left").click(function(){ $(".block").animate({"left": "-=50px"}, "slow"); }); </script> </body> </html>
我想的方向通過其中「左」或「右」 – LeBlaireau 2012-04-25 09:12:57
然後通過其中'left'或'右'... – elclanrs 2012-04-25 09:13:08
如果我不想使用' - ='或'+ ='操作符,那麼因爲在Chrome中放大問題會怎樣?有沒有「等效」的電話? – 2012-10-15 22:22:13