2012-04-25 2 views
2

私はdivのクリックからの方向を取得し、間違っている何アニメーション化する方向に渡しjQueryの()

var direction = $(this).attr('class').split(' ')[1]; 
var scrollAmount = 285; 
$('#slider').animate({direction:'-=' + scrollAmount}, 'slow'); 

アニメーション機能にこれを渡すようにしようとしていますか?

おかげ

答えて

2

APIドキュメントをアニメーションjQueryのから

例コードをアニメーション化する最初のパラメータとして、CSSで左または右に渡す必要がありますanimate関数の最初の引数は、アニメーションの最後の最終的なプロパティを示すCSSプロパティを取ります。あなたはそのように方向を伝えることはできません。あなたは左またはスクロール左の量を設定し、方向を変更したい場合は、方向の値を見て、行きたい方法に応じて - =または+ =を使用する必要があります。

var sign; 

if (direction == 'left') sign = '-='; 
else sign = '+='; 

$('#slider').animate({left:sign + scrollAmount}, 'slow'); 

それともプロパティがある場合は、私は方向に合格しようとしています

var prop = {}; 
prop[direction] = scrollAmount; 
$('#slider').animate(prop, 'slow'); 
+0

' - ='または '+ ='演算子を使用したくない場合はどうしますか?クロムのズームの問題はありますか? 「等価な」コールはありますか? –

1

方向ので、エラーと呼ばれるanimateには、このようなプロパティはありません。 documentationを確認してください。

コメント

あたりとして編集し、あなたが

<!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">&laquo;</button> <button id="right">&raquo;</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> 
+0

に合格しようとしているいずれかの「左」または「右」 – LeBlaireau

+0

次に 'left'または'右のいずれかを渡します'... – elclanrs

関連する問題