0

考虑以下代码段:

<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";
                    }
                });

需要进行哪些更改才能使其按需要工作?任何片段、关键字或链接将不胜感激。

4

1 回答 1

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/

于 2012-11-22T16:28:52.523 回答