Jquery 滚动时更改文本

Jquery 滚动时更改文本,jquery,Jquery,我在同一个班级有几个部门。我有一个文本字段,它将显示当前div的标题 <p class="displayTitle"></p> <div class="scrollDiv" data-title="div1">...</div> <div class="scrollDiv" data-title="div2">...</div> <div class="scrollDiv" data-title="div3">.

我在同一个班级有几个部门。我有一个文本字段,它将显示当前div的标题

<p class="displayTitle"></p>
<div class="scrollDiv" data-title="div1">...</div>
<div class="scrollDiv" data-title="div2">...</div>
<div class="scrollDiv" data-title="div3">...</div>
这段代码的问题是,即使我将窗口滚动到第二个或第三个div,我也只能获得第一个div的标题

任何建议都会有帮助。谢谢。

基于媒体上发表的文章

要检查元素是否在视口中,我们需要四个值

  • elementTop:元素的顶部位置。 偏移函数用于查找相对于父对象的位置 元素(本例中为主体)和顶部指的是与 顶
  • 元素底部:元素的底部位置 为了找到元素的底部位置,我们必须添加元素的高度 将元素添加到elementTop变量。我们很幸运jQuery 提供一个名为outerHeight的方法,该方法允许我们查找 元素的高度,包括边框、填充和可选填充
  • 视口顶部:视口的顶部 可以通过窗口对象上的scrollTop函数找到。 方便地从滚动条返回相对位置 位置与对象匹配,在本例中,这是我们的窗口
  • 视口底部:视口的底部 与elementBottom相同。我们将窗口高度添加到视口顶部,以 找到底部
$(窗口).on(“滚动”,函数(){
$('.scrollDiv')。每个(函数(){
var title=$(this.attr('data-title');
if(isInViewPort($(this))){
控制台日志(标题);
}
});
});         
函数isInViewPort($this){
var elementTop=$($this).offset().top;
var elementBottom=elementTop+$(this.outerHeight();
var viewportTop=$(window.scrollTop();
var viewportBottom=viewportTop+$(window).height();
返回elementBottom>viewportTop&&elementTop

“知识本身是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德。”有时,如果你不自以为是,就必须为自己的行为负责。” “我们必须清楚地认识到所有的自然错误,并将其视为一种赞美、一种开明、一种真实的发明家和准建筑师的行为,必须加以解释。我们必须将其视为一种理性的行为,而不是一种理性的行为。”以下是一个例子:一个人在工作和生活中的时间长短,他在工作和生活中的时间长短,他在工作和生活中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间,他在工作中的时间长短,他在工作中的时间,他在工作中的时间,他在工作中的时间,他在工作中的时间,他在工作中的时间,他在工作中的时间,他在工作中的你是否认为自己是一个不受法律约束的人,而不是一个不受法律约束的人?” “知识本身是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德。”有时,如果你不自以为是,就必须为自己的行为负责。” “我们必须清楚地认识到所有的自然错误,并将其视为一种赞美、一种开明、一种真实的发明家和准建筑师的行为,必须加以解释。我们必须将其视为一种理性的行为,而不是一种理性的行为。”以下是一个例子:一个人在工作和生活中的时间长短,他在工作和生活中的时间长短,他在工作和生活中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间,他在工作中的时间长短,他在工作中的时间,他在工作中的时间,他在工作中的时间,他在工作中的时间,他在工作中的时间,他在工作中的时间,他在工作中的你是否认为自己是一个不受法律约束的人,而不是一个不受法律约束的人?” “知识本身是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德。”有时,如果你不自以为是,就必须为自己的行为负责。” “我们必须清楚地认识到所有的自然错误,并将其视为一种赞美、一种开明、一种真实的发明家和准建筑师的行为,必须加以解释。我们必须将其视为一种理性的行为,而不是一种理性的行为。”以下是一个例子:一个人在工作和生活中的时间长短,他在工作和生活中的时间长短,他在工作和生活中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间长短,他在工作中的时间,他在工作中的时间长短,他在工作中的时间,他在工作中的时间,他在工作中的时间,他在工作中的时间,他在工作中的时间,他在工作中的时间,他在工作中的你是否认为自己是一个不受法律约束的人,而不是一个不受法律约束的人?”
您无法从js获取当前查看元素。但是你可以试着用偏移高度来做。获取每个元素的高度,并通过curre标识当前元素
function setScrollingText() {
    $(window).on("scroll", function() {
        var $aBlk = $(".scrollDiv");
        var title = $aBlk.data("title");
        console.log(title);
    });         
};