コードが正常に動作するように、#navarrow
がmarginLeftと同じようにレイアウトされていることを確認してください。つまり、position:absolute
です。
<div id="navitem-2" class="activeSlide"></div>
<div id="navarro"
style="width:10px;height:10px;background-color:green;position:absolute;">
</div>
<script>
$(document).ready(function() {
if($('#navitem-2').hasClass("activeSlide")){
$("#navarro").animate({marginLeft:"220px"}, 500);
};
});
</script>
デモ:あなたのコメント/例に基づいて更新http://jsfiddle.net/cameronjordan/uwf9y/
:クラスの変更や確認は、この例では、任意の目的にサービスを提供していないよう
それが生きて使用することをはるかに簡単ですアニメーションを直接トリガーします。
http://jsfiddle.net/cameronjordan/pn5sx/3/
<div id="navitem-1" class="slideable"><a href="#">Slide 1</a></div>
<div id="navitem-2" class="slideable"><a href="#">Slide 2</a></div>
<div id="navitem-3" class="slideable"><a href="#">Slide 3</a></div>
<div id="navarro"></div>
<script>
var prevSlideable;
$('.slideable').live('click', function(){
if(prevSlideable != this.id) {
// do you need this activeSlide class anymore?
if(prevSlideable) {
$(prevSlideable).removeClass('activeSlide');
}
$(this).addClass('activeSlide');
prevSlideable = this.id;
$('#navarro').animate({
marginLeft: this.offsetLeft + "px"
}, 500);
}
});
</script>
コードは、私は非常にそのコードが繰り返されていない、あなたはできるだけ少ないに焦点を当て、各コードチャンクを保つことができるようにカスタムイベントを使用することをお勧めこれよりも大きくなるために必要な場合。アニメーションは1か所で制御され、必要に応じてトリガーされます。
それは何をしているのですか?エラーはありますか? – hunter
'#navitem-2'に' activeSlide'クラスがありますか?ライブサンプルへのリンクを投稿できますか(または関連するHTMLを少なくとも投稿してください)? – clarkf
は、小さな緑の 'div#navarro'が左右にスイングするはずですか?それは私のために働いています。私はfirefoxを使用しています。 –