簡體   English   中英

每次使用 jQuery 看到某個元素時如何做某事?

[英]How to do something everytime a certain element is in view using jQuery?

現在,每次用戶到達我的頁面底部時,我都會使用以下代碼更新 url hash:

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

當用戶在下面的代碼中滾動到帶有 class “頁面”的任何 div 時,我該如何做同樣的事情? 例如,如果用戶滾動到第一個視圖中,則 hash 應更新為#page-1,但一旦他們滾動到第二個視圖中,hash 應更新為#page-2,依此類推。 如果他們滾動回到第一個,hash 應該再次更新為#page-1。 基本上 hash 應該根據視圖中的任何 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>

此代碼可能有所幫助,但在客戶端可能有點密集。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM