检测 div 中的滚动结束

2023-12-15

我有一个包含许多博客文章的动态网站。我想首先加载四个帖子,然后在滚动到末尾时加载另外四个帖子。我知道如何在后端处理它,但我在前端遇到问题。我已将 html 和 body 的高度设置为 100%,因此窗口上的滚动事件不起作用。作为解决方法,我决定使用单个 div 来检测滚动。我在 div 上添加了滚动事件,效果很好。但是当我尝试检测 div 上的滚动结束时,在执行任何滚动之前在页面加载开始时执行的代码。我使用的代码是:

if (element.scrollHeight - element.scrollTop === element.clientHeight){
   alert("End");
}

如何使警报仅在 div 滚动到末尾而不是在开头时出现?


您可以使用element.scrollTop + element.offsetHeight>= element.scrollHeight检测滚动结束。

Update: 还添加一个条件,以便向上滚动时不会触发。 有关向上滚动条件的更多信息,您可以检查这个链接。

const element = document.getElementById('element');
let lastScrollTop = 0;
element.onscroll = (e)=>{
if (element.scrollTop < lastScrollTop){
      // upscroll 
      return;
   } 
   lastScrollTop = element.scrollTop <= 0 ? 0 : element.scrollTop;
    if (element.scrollTop + element.offsetHeight>= element.scrollHeight ){
       console.log("End");
    }
}
#element{
  background:red;
  max-height:300px;
  overflow:scroll;
}
.item{
height:100px;
}
<div id="element">
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测 div 中的滚动结束 的相关文章

  • 保持未知数量的 div 居中,每行最多 4 个

    我有一个简单的问题 但我自己无法解决 简而言之 有一个未知电话我必须在页面中放置的元素数量 最多 每行 4 个元素 但仍居中 此图片给您一个提示 我为了示例而设置它 详细 在上图中我涵盖了不同的场景 例如 如果总共有 5 个元素 则应使用第
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • 表单计算器脚本基本价格未加载 OnLoad

    我的表单中有一个计算器来计算我的下拉选项选择 function select calculate on change calc input type checkbox calculate on click calc function cal
  • HTML 中部分着色的阿拉伯语单词

    我不会说阿拉伯语 但我需要我们网站上对阿拉伯语的具体支持 我需要将部分阿拉伯语单词放在 span 与单词其他部分的风格不同 当我输入两个字符时 and 它们被组合成word 但是当我使用 HTML 标记时 span span 这些字母在输出
  • 如何在使用页面锚点导航时设置“激活”类以在 Angular 2 中引导导航栏?

    我正在使用 Angular 2 和 Bootstrap 4 创建一个单页网站 我创建了一个始终位于页面顶部的导航栏组件 并且我正在使用页面锚点导航 id 请注意 我还没有创建路由模块 到目前为止还没有必要这样做 导航栏代码如下
  • 动态img(或视频)标签根本不加载资源,HTTP请求处于“待处理”状态

    我尝试使用以下方法在 Web 应用程序上加载资源时遇到一些问题img or videoHTML 标签 我在我的应用程序中使用 Angular 并动态设置src的参数img标签 使用ng src src 指示 没有那么多图像和资源需要加载 在
  • 如何使用tampermonkey模拟react应用程序中的点击?

    我正在尝试使用 Tampermonkey 脚本模拟对 React 元素的点击 不幸的是 由于 React 有自己的影子 DOM 所以天真的方法使用document querySelector 不工作 我遇到了一些需要修改 React 组件本
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 如何在没有@import的情况下减少@import?

    我用的较少 从 Google PageSpeed 我了解到 使用 importCSS 文件中的内容会影响网站速度 所以我想排除任何 import来自我的 CSS 的东西 我有 2 个不同的样式表reset css and rebuild c
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div
  • 模块构建失败(来自 ./node_modules/babel-loader/lib/index.js)Vue Js

    我从 GitHub 下载了一个我和我的朋友正在开发的项目 但是当我尝试运行时 npm run serve 我收到这个错误 src main js 中的错误 Module build failed from node modules babe
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • 为什么我不能在 AngularJS 中使用 data-* 作为指令的属性名称?

    On the t他的笨蛋 http plnkr co edit l3KoY3 p preview您可以注意到属性名称模式的奇怪行为data 在指令中 电话 Test of data named attribute br
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交
  • 如何仅在最后一个
  • 处给出透明六边形角度?
  • 我必须制作这样的菜单 替代文本 http shup com Shup 330421 1104422739 My Desktop png http shup com Shup 330421 1104422739 My Desktop png
  • 为什么元素上的负底部边距会降低该元素父元素的高度?

    这可能是由于边距折叠造成的 我知道边距折叠 至少知道它如何影响相邻元素 但我不明白当涉及负边距时它如何在嵌套元素上工作 例如 在此标记和随附的 CSS 中 Markup div class parent div class child Ch
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a
  • 无效字符错误:“fred”

    我确信他一定是一个新手问题 简单来说 我想定义我的第一个 Polymer dart 组件 只是我一直在同一个减速带上踢脚趾 为了使事情变得非常简单 我将其简化为一个非常简单的示例 我做了一个简单的rename示例 跑表 来自 Dart 组件

随机推荐

  • android 位图获取像素

    我需要获取像素的颜色 以便将其与 color xml 文件中的颜色进行比较 但所有值都是负数 并且此比较将始终返回错误结果 如何获得合适的颜色值 该颜色可以是透明的 我读了this但我需要一个答案 而不是理论的链接 bmp getPixel
  • Varchar2 和 char 之间的主要区别是什么

    创建表 CREATE TABLE test charcol CHAR 10 varcharcol VARCHAR2 10 SELECT LENGTH charcol LENGTH varcharcol FROM test Result LE
  • 循环 jquery 自动完成(第二个字段)

    继这个问题jquery 自动完成 在同一字段中包含更多项目我试图循环自动完成功能 15 次 function for i 0 i lt 15 i function log message div text message prependTo
  • 将 JSON 嵌套列表转换为 DataFrame

    如何将以下字典列表 json 输出 转换为 pandas DataFrame 我试过 res for d in list of dict res update d 它给了我错误 ValueError dictionary update se
  • SelectSingleNode 在 dnx core 5.0 中给出编译错误

    我使用 SelectSingleNode 方法收到此错误 DNX Core 5 0 错误 CS1061 XmlDocument 不包含 SelectSingleNode 的定义 并且找不到接受 XmlDocument 类型的第一个参数的扩展
  • 在 powershell 中将 XML 转换为 xlsx

    我在网上找到了一些powershell命令将xlsx文件转换为xml文件 这很好用 但是我得到的 xml 会被稍微操纵 之后我需要将其转换回标准 xlsx 文件 使用以下命令生成的 xml 如何将其转换回 xlsx 文件 Thanks xl
  • OpenSSL 客户端基于证书的身份验证失败

    我正在尝试运行以下命令 root localhost certs openssl s client connect localhost 7043 cert opt openssl 1 0 0a ssl certwork client cli
  • ng-repeat 与空对象

    我收到 中继器重复 错误 我在某处读到可以通过索引进行跟踪 但是一旦我这样做 我的所有对象标题和描述值就会变得重复 我需要为每个步骤定义唯一的标题 描述和资产数组 我怎样才能做到这一点 var stepTemplate assets sco
  • Android JET 文件格式是专有的还是开放的?

    我需要以编程方式为我的 Android 项目从头开始创建 JET 文件 文件格式是否公开 鉴于所有 JET Sonivox 文件均采用 Android 源代码 包括较低级别的 C 文件 应该可以确定其格式 https android goo
  • 如何使用 pandas 重塑每第 n 行的数据?

    我需要帮助来重塑 csv 文件中的数据 该文件包含超过 10000 行 每行 10 行 例如我有这个 csv 文件 Ale Brick 1 ww 2 ee 3 qq 3 xx 5 dd 3 gg 7 hh 8 tt 9 yy 0 uu 1
  • 当我调整 Jframe 大小时如何停止 auto-repaint()

    我还在学习Java 如果有人能帮助我我会很高兴 抱歉英语不好 我是西班牙人 我正在制作一款瓷砖游戏 该游戏使用经典的 游戏循环 将引擎限制在 60fps 循环休眠然后调用repaint 这很好用 但 问题是 当 JFrame 调整大小或最大
  • 模拟连接在 Couchbase 中如何工作?

    我有一份相互依赖的文件 第一的 doctype closed auctions seller person person11304 buyer person person0 itemref item item1 price 50 03 da
  • 如何一次又一次地调用一个方法,直到它返回包含“None”的“Future”值

    给定一个返回 a 的方法Future像这样 def remove id String Future Option User Future removes and returns the user identified by id 我如何一次
  • 使用 ajax 和 JavaScript 发布到 GitHub v3 API 失败并出现 HTTP 404

    我正在尝试按照文档将 blob 发布到 JavaScript jQuery 中的 GitHub APIhttps developer github com v3 git blobs create a blob 但是我不断收到 404 请求
  • 如何通过 PHP 将 .xls 转换为 .pdf?

    我在谷歌上搜索了很多小时 但还没有找到解决方案 我需要将 xls 文件转换为 pdf 文件 怎么做 我找到了这个http www aspose com 但似乎它没有PHP API 只有 NET和JAVA 感谢您的每一个建议 PHPExcel
  • 上传apk到市场时,apk必须使用与之前版本相同的证书进行签名

    我已经创建了一个应用程序并发布在android市场上 现在我想发布它的第二个版本 我想澄清几件事 我保留了相同的包名称 我没有以前的密钥库 因为我更改了 Windows 因此删除了密钥库 并且我没有该密钥库的备份 现在我应该有什么方法可以从
  • 在 Xcode 6 中调整测量中心

    在新的 Xcode 6 中 缺少更改按钮测量中心的功能 在 Xcode 5 中 https i stack imgur com 3fCfY jpg Xcode 6 https i stack imgur com 46YTZ jpg 当我将一
  • 使用带有 LAME 的 NDK 的内置函数警告的不兼容隐式声明

    我正在尝试按照位于以下位置的教程进行操作 http developer samsung com android technical docs Porting and using LAME MP3 on Android with JNI 其要
  • 选择 2 下拉列表但允许用户输入新值?

    我想要一个包含一组值的下拉菜单 但也允许用户 选择 此处未列出的新值 我看到select2如果您使用它 则支持此功能tags模式 但是有没有办法在不使用标签的情况下做到这一点 The 很好的答案由 提供 fmpwizard适用于 Selec
  • 检测 div 中的滚动结束

    我有一个包含许多博客文章的动态网站 我想首先加载四个帖子 然后在滚动到末尾时加载另外四个帖子 我知道如何在后端处理它 但我在前端遇到问题 我已将 html 和 body 的高度设置为 100 因此窗口上的滚动事件不起作用 作为解决方法 我决