[英]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');
}
});
更改
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.