簡體   English   中英

當滾動到達div的頂部時如何打印scrolltop()值0

[英]How can I print scrolltop() value 0 when scroll reaches top of the div

我在同一頁面上有5個div。 所有div都具有相同的類名“ post”和相同的高度“ 600px”。 所以我想要的是當我在5 div中滾動任何div時,當它到達div的頂部時,它應該警告值0。

問題是當我將div2,div3,div4,div5滾動到頂部時。 它沒有打印值“ 0”。 但是,當我將div1滾動到頂部,然后滾動其他div時,它顯示為“ 0”。 無論我首先滾動哪個div,我都需要打印'0'。 為什么會這樣呢。 有關jsfiddle代碼的信息,請參見注釋部分。 提前致謝。

演示版

$("window").load()
{
    $('.post').scrollTop($('.post').height())  
} 

$('.post').scroll(function() {
    if($('.post').scrollTop()==0)
    {
        alert('0');
    }
});

jsfiddle

更改

if($('.post').scrollTop()==0)
{
    alert('0');
}

if($(this).scrollTop()==0)
{
    alert('0');
}

$('.post').scrollTop()將給出第一個div (第一個找到的元素)的值。 如果第一個div值為0,則即使滾動其他div$('.post').scrollTop() == 0也將始終為true

您總是選擇第一格。 這就是為什么您得到該結果的原因。

在此代碼中:

if($('.post').scrollTop()==0)
{
    alert('0');
}

$('。post')。scrollTop()將返回第一個找到的元素。

嘗試這個:

$('.post').scroll(function() {

    $('.post').each(function() {
        if($(this).scrollTop()==0)
        {
            alert('0');
        }
    });
});

將您的post div包裝在父母中,然后遍歷孩子。 然后使用this關鍵字來標識要滾動的子div:

$('#allPosts').children().scroll(function () {
    if ($(this).scrollTop() === 0) {
        alert('0');
    }
});

所有你需要的是:

$(".post").scroll(function () {
    if ($(this).scrollTop() == 0) {
        alert('0');
    }
});

小提琴: http : //jsfiddle.net/052xntw9/19/

這會將事件偵聽器附加到每個div,而$(this)專門引用該div(而不是第一個div)。

暫無
暫無

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

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