当前位置: 首页 > 知识库问答 >
问题:

当滚动到达div的顶部时,如何增加变量的值

凌修伟
2023-03-14

我在同一个页面上有5个div和相同的类名="post"。我还得到一个变量名p=1。

我想做的是,当我滚动div1时,它应该将p值增加1意味着现在对于div1,p=2。

然后,如果我滚动div2,它应该增加p值1意味着p=2现在div2。等等。如果我再次滚动div2,p值必须是p=3。

若我滚动div4,p值必须是2,若我滚动div1,p值上次是2。现在必须是3。

但当我滚动div1,p变成p=2时,会发生什么呢。然后,如果我滚动任何div p变成p=3,如果我再次滚动它变成p=4。

所以我想做的是,当我以任何顺序滚动任何div时,它应该根据该div分别增加'p'的值。换句话说,我只想计算我单独滚动所有5个div的次数。

这是我的JS小提琴,JS代码如下:

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



var p=1;
$('.post').scroll(function() {


        if($(this).scrollTop()==0)
        {
            p++;
            alert(p);


        }

});

共有1个答案

钱志
2023-03-14

您可以使用数据api单独保存数据

$("window").load(){
    $('.post').scrollTop($('.post').height()).data('p',0); //initialize
}


$('.post').scroll(function() {
    var $this = $(this);

    if($this.scrollTop() == 0){
        $this.data('p',$this.data('p') + 1); //increment
        alert($this.data('p'));
    }  
});

请参阅工作JSFIDLE

 类似资料:
  • 我正在使用AngularJS开发一个小型web应用程序,遇到了一个问题。我正在使用填充div内部的列表。div有一个固定的高度,并设置为,这意味着当列表对于div来说太大时会出现一个滚动条。我的问题是,当重新绘制列表时,即支持ng repeat的数据会发生变化,滚动条不会重置为div的顶部。相反,它会保持在ng repeat更改之前滚动条所在的任何位置。这是一个非常糟糕的用户体验。我尝试了以下方法

  • 我在同一页上有5个div。所有的div都有相同的类名“post”和相同的高度“600px”。所以我想要的是当我在5个div中滚动任何div,当它到达div的顶部时,它应该提醒值0。 问题是当我滚动div2,div3,div4,div5到顶部。它没有打印值'0'。但是当我滚动div 1到顶部,然后如果我滚动任何其他div,它显示'0'。无论我先滚动哪个div,我都需要打印0。为什么会发生?请参阅js

  • 我正忙着建立一个页面,在那里,比赛的计分室将能够看到现场结果,因为评委们会为每个参赛作品打分。 除此之外(每10秒检查一次更新),还有一个功能可以检查舞台上的当前条目(用绿色标记),这将滚动计分室的块,以始终在页面顶部显示当前条目。 然而,这创造了一个无休止的循环上下滚动的整个时间。 初始滚动工作正常,但由于当前项的位置已更改,jQuery再次向下滚动,使该项现在处于新的偏移量。 我的代码当前如下

  • 问题内容: 我有一个“浮动工具箱”-的div 。效果很好。 但是,当在该框内滚动(使用鼠标滚轮)并到达底部或顶部时,父元素将“接管”“滚动请求”:工具箱后面的文档将滚动。 -这很烦人,而不是用户的“要求”。 我正在使用jQuery,并认为可以使用event.stoppropagation()停止此行为: 它确实输入了该函数,但是仍然会发生传播(文档滚动) 很难在SO(和Google)上搜索此主题,

  • 问题内容: 我正在使用Ajax请求创建聊天,并且试图使消息div滚动到底部没有太多运气。 我将所有内容包装在这个div中: 有没有一种方法可以使用JS将其默认滚动到底部? 有没有一种方法可以在ajax请求后将其滚动到底部? 问题答案: 这是我在网站上使用的内容:

  • 问题内容: 我正在使用以下代码,当滚动条到达底部时,该代码将正常工作, 但是我希望当我达到滚动的70%而不是100时触发ajax。 问题答案: 如果滚动到页面底部时当前触发检查,则可以尝试一些基本算法: 如果还没有,请确保添加一个检查以免同时触发多个Ajax请求。 这完全超出了问题的范围,但是如果您想要一个示例,说明如何防止同时触发多个请求: 声明一个全局变量,例如。 然后将其合并到您的函数中: