您的代碼有效,只要確保#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>
如果所需的代碼是任何比這個我強烈建議您使用自定義事件,這樣的代碼不重複,你可以保持每個代碼塊集中在儘可能少的大;動畫被控制在一個地方,並在需要時觸發。
它在幹什麼?有沒有錯誤? – hunter 2010-12-02 20:01:07
你確定`#navitem-2`有`activeSlide`類嗎?你能發佈一個鏈接到一個活的例子(或者至少發佈相關的HTML)嗎? – clarkf 2010-12-02 20:02:38
是那個小綠色`div#navarro`應該擺動到左邊然後右邊?那麼它爲我工作。我正在使用Firefox。 – 2010-12-02 21:04:00