2014-02-11 240 views
0

我想我需要幫助。我正在嘗試使用jQuery,但我不太瞭解,但是我遇到了菜單的「顏色激活」問題。addClass div滾動頁面jquery

這是我工作的一個簡化版本:http://jsfiddle.net/paulakfleck/aZGKz/

這裏是整個工作(完成):http://nartecrobotica.com.br/g4/

正如你所看到的,當我點擊菜單中的「激活色」作品,但是當我滾動頁面或打開頁面時,請勿。

我猜的大錯是在這一行:

if($(window).scrollTop() == $("#g-4")){...}

我把#G-4作爲一個例子,但沒有工作過。

我嘗試其他答案在Stackoverflow,但我無法做到這一點。

請點亮一些燈?

+0

是的,因爲你正在比較對象與數值! –

+0

哦..你知道正確的做法嗎? –

回答

3

如果你希望你的菜單更改爲你滾動,你可以試試這個:

$('.grid').each(function() { 
    if ($(window).scrollTop() > $(this).position().top - ($(this).height()/2)) { 
     $('.myList a').removeClass('active'); 
     $('.myList a#menu' + $(this).attr('id').split('-')[1]).addClass('active'); 
    } 
}); 

更新您的jsfiddle here

+0

我使用#g-4只是一個例子......當我在頁面上滾動時,「活動顏色」根據特定的div進行更改。就像這裏:http://jalxob.com/cool-kitten/(滾動頁面看菜單顏色發生了什麼) –

+1

更新了我的回答:) http://jsfiddle.net/aZGKz/5/ –

1

是ü尋找這個..

如果是,那麼我使用.offset().top比較。

一個問題是$(window).scrollTop()給出了整數的滾動條位置,您的div位置是固定的,因此您需要在應用該類之前進行範圍檢查。

Check demo

+0

太棒了!這個人也工作,但他先回答,對不起:/但謝謝! –

+0

@PaulaFleck不要對不起馬格努斯的回答比我的更好。 – Saurabh