使用达到的div id更改URL哈希值

时间:2012-11-22 16:23:54

标签: jquery css

请考虑以下代码段:

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

要根据需要改变什么?任何片段,关键字或链接将不胜感激。

1 个答案:

答案 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/