请考虑以下代码段:
<div id="container">
<div id="1" class="flag"></div>
/* some text */
<div id="2" class="flag"></div>
/* some text */
<div id="3" class="flag"></div>
/* some text */
</div>
容器溢出,它有一个滚动条。我需要在滚动时使用div达到的id更改URL中的哈希值。 例如,滚动条位于容器的顶部/底部。我开始向下/向上滚动,一旦我到达div,我将URL的哈希值更改为此到达div的 id 。
当我到达一个非常特定的div(JQuery)时,这种方式将哈希值更改为一个非常具体的值:
var t = $("#someDiv").offset().top;
$("#container").scroll(function(){
if($(this).scrollTop() > t )
{
location.hash = "100";
}
});
要根据需要改变什么?任何片段,关键字或链接将不胜感激。
答案 0 :(得分:0)
为什么不检查每个div
?
$("#container").scroll(function() {
$('#container > div').each(function() {
if( $("#container").offset().top > $(this).offset().top ) {
window.location.hash = this.id;
}
});
});
jsFiddle:http://jsfiddle.net/2ZjWP/