2013-04-29 110 views
0

我正在改變,當用戶滾動頁面上的某一點元素的ID:更改ID - 怪事發生

http://jsfiddle.net/QupNv/6/

的ID應該改變取決於他們在哪裏。這裏是我的代碼:

$(window).scroll(function() { 

var scrollTop = $(window).scrollTop(), 
    divOffset = $('#b').offset().top, 
    dist = (divOffset - scrollTop); 

$('.message').text(dist); 

if (dist >= 100 && dist <= 200) { 
    $('.switch').attr('id', 'd') 
} 
else if (dist > 1 && dist < 100) { 
    $('.switch').attr('id', 'e') 
} 
else { 
    $('.switch').attr('id', 'c') 
} 
}); 

它像一個夢時,我有一個條件,但如果我添加的if else然後它要跳回窗口的頂部,而不是繼續向下滾動。任何指針我做錯了什麼?

任何幫助,非常感謝!謝謝!

+0

http://jsfiddle.net/mblase75/QupNv/5/ - 似乎爲我工作得很好。 – Blazemonger 2013-04-29 20:09:30

+0

這將導致每個具有'switch'類的元素獲得相同的ID。由於ID應該是唯一的,這會導致意想不到的後果。 – 2013-04-29 20:10:15

+0

目標是讓一個元素具有類別開關,以便在用戶滾動時根據不同ID更改屬性。我的想法是一次只有一個ID。 – 98c 2013-04-29 20:17:30

回答

1

從我所知道的情況來看,這是因爲您的代碼中沒有帶ID =「e」的DIV。這就是爲什麼它跳回頂端。

+0

創建一個帶有「e」ID的DIV,它仍然跳轉。 – 98c 2013-04-29 20:18:21

+0

發佈錯誤的鏈接。這裏是我的問題的例子:http://jsfiddle.net/QupNv/6/ – 98c 2013-04-29 20:27:39

+0

得到它的工作,感謝您的幫助! – 98c 2013-04-29 20:36:30