2013-04-29 27 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

相关问题