divクリックとaから方向を取得し、これをアニメーション関数に渡そうとしています
var direction = $(this).attr('class').split(' ')[1];
var scrollAmount = 285;
$('#slider').animate({direction:'-=' + scrollAmount}, 'slow');
なにが問題ですか?
ありがとう
divクリックとaから方向を取得し、これをアニメーション関数に渡そうとしています
var direction = $(this).attr('class').split(' ')[1];
var scrollAmount = 285;
$('#slider').animate({direction:'-=' + scrollAmount}, 'slow');
なにが問題ですか?
ありがとう
animate 関数の最初の引数は、アニメーションの終わりの最終的なプロパティを示す CSS プロパティを受け取ります。その方向に進むことはできません。left または 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
方向として呼び出されるプロパティがないため、エラーが発生します。ドキュメントを確認してください。
コメントに従って編集
次に、アニメーション化する最初のパラメーターとして、css で left または right を渡す必要があります。
jQuery animate 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>