2

现在每次用户到达我的页面底部时,我都会使用以下代码更新 url 哈希:

var new_page_value = 1;
$(window).scroll(function() {
    if($(window).scrollTop() == $(document).height() - $(window).height()) {
        new_page_value += 1;
        window.location.hash = 'page-' + new_page_value;
    }
});

当用户在下面的代码中使用类“page”滚动过去任何 div 时,我该如何做同样的事情?例如,如果用户滚动查看第一个,则哈希应更新为#page-1,但一旦他们滚动查看第二个,哈希应更新为#page-2,依此类推。如果他们滚动回第一个,哈希应该再次更新为#page-1。基本上,哈希应该根据视图中的任何 div 进行更新。

<div class="page" data-page-num="1"></div>

<br /><br /><br /><br /><br /><br /><br /><br /><br />

<div class="page" data-page-num="2"></div>

<br /><br /><br /><br /><br /><br /><br /><br /><br />

<div class="page" data-page-num="3"></div>
4

1 回答 1

0

此代码可能会有所帮助,但在客户端可能有点密集。

var new_page_value = 1;
$(window).scroll(function() {
    $(".page").each(function() {
        var position = $(this).position();
        if($(window).scrollTop() == position.top) {
            new_page_value += 1;
            window.location.hash = 'page-' + new_page_value;
        }
    });

    if($(window).scrollTop() == $(document).height() - $(window).height()) {
        new_page_value += 1;
        window.location.hash = 'page-' + new_page_value;
    }
});
于 2012-04-08T00:30:53.893 回答