每次使用jQuery查看某个元素时如何做某事?

时间:2012-04-08 00:05:53

标签: javascript jquery

现在,每当用户到达我的页面底部时,我都会使用以下代码更新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>

1 个答案:

答案 0 :(得分: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;
    }
});