2012-02-27 83 views
0

這甚至是假設通過向下添加類來移動div。但它提前? 。標題沒有打到頂部,它已經在旅途中!?jquery切換類不能完全工作

$(document).ready(function(){ 
    $(window).scroll(function() { 
    var moveit = $('.title'), //the titles are to move 
     targetScroll = $('.title').position().top, //when .title is at top 
     currentScroll = $(document.body).scrollTop(); 

    moveit.toggleClass('down', currentScroll >= targetScroll); 
    }); 
}); 

#box #left ul li:hover .down { 
    top: 500px; 
} 

.down包含的方式提前。

我在做什麼錯......它盯着我臉上不是嗎?

+0

你的代碼的工作:http://jsfiddle.net/RVbCq/就非常有可能的CSS問題更多。 – 2012-02-27 22:23:26

回答

0

這是因爲jQuery使用它自己的隊列來處理動畫。它只是走到下一行。如果你想知道什麼時候滾動完成,最好使用scrollTo插件:http://flesler.blogspot.com/2007/10/jqueryscrollto.html

這會讓你輸入一個在滾動完成時執行的函數。在散列對象中使用onAfter參數。

UPDATE

我希望我找到了。您正在對照document.body進行檢查。滾動值始終爲0。所以請檢查:$(document).scrollTop()

http://jsfiddle.net/RVbCq/1/

+0

通過您的代碼仔細閱讀。我不知道我的理由是否正確。你的代碼對於所有的逗號和預定義的查詢都有點麻煩。但我希望這個插件能爲你做好工作,所以我在這裏留下了答案。 – Marnix 2012-02-27 22:28:19

+0

我將它從位置改變爲偏移量,它可以工作。雖然我不太清楚爲什麼。 – shamguy4 2012-02-27 23:10:51