检测 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 中的滚动结束 的相关文章

  • 单击元素外部时触发事件的指令

    我知道有很多问题都在问类似的事情 但没有人真正解决我的问题 我正在尝试构建一个指令 当鼠标单击当前元素外部时 该指令将执行表达式 为什么我需要这个功能 我正在构建一个应用程序 在这个应用程序中 有 3 个下拉菜单 5 个下拉列表 如选择的
  • 如何绕过 IE8 对 data:uri Base64 编码的 32k 限制?

    我需要向浏览器发送包含 1920x1080 png 的 html 响应 这是一个 html 查询截取的屏幕截图 我对图像进行 base64 编码 并将其作为 text html 内容类型嵌入发送 一些简单的事情 比如 Whatever im
  • 一个输入字段,多个名称

    在 HTML 表单中 如何从一个输入字段获取两个姓名 是否可以通过隐藏的输入字段 如何 我试图使隐藏字段值动态等于非隐藏字段值 这样无论用户写什么 它们都相等 但我确信它不起作用 而不是像这样的东西是否会起作用工作 Here http ww
  • 图像未完整显示在身体背景上

    例子 http jsbin com opokev 20 http jsbin com opokev 20 完整图片 http i53 tinypic com 347a8uu jpg http i53 tinypic com 347a8uu
  • 如何按日期升序对对象进行排序?

    如果我有一个对象列表 var objectList LIST OF OBJECT each object列表中包含三个属性 name date gender 如何按 对列表中的对象进行排序date 属性升序 the date 属性包含字符串
  • 有什么方法可以安全地在浏览器中显示视频

    有什么方法可以安全地在浏览器中显示视频 就像他的安全措施之一 视频无法下载 谢谢 我想您的意思是您不希望您的视频被下载或复制 如果是这样 那么阻止人们下载视频或多或少是不可能的 甚至有很多工具可以从 YouTube 等大型提供商那里下载 因
  • 是否可以全局文本对齐表列而不在每行中指定类?

    想知道提高效率的最佳方法是什么 也许使用 jQuery 我可以接受不兼容 ie7 的解决方案 如果需要的话 即使缺乏对 ie8 的支持也可以 table th td class cal center td td left td td cla
  • 使用Doctype让scrollTop返回0,为什么?

    当我将此 Doctype 放入我的文档中时document body scrollTop返回零 这是为什么 当您使用该 Doctype 时 您会将每个当前浏览器放入所谓的几乎标准模式 http hsivonen iki fi doctype
  • javascript 中的自动转换:像 stringvar = 1+stringvar 这样完成时,不是应该将字符串转换为数字吗?

    火狐32 Win 7 使用暂存器时 var a 2 a 1 1 a console log a typeof a a 1 a 1 console log a typeof a 在控制台中导致 02 string 101 number 难道我
  • 输入号码时自动格式化 SSN

    我有一个文本字段 用户输入 SSN 号码 输入自身时 它应该格式化 就像关于文本字段的更改 它应该格式化999 999 999以这种方式在显示器本身上 kottenator 的脚本几乎已经完成 但它每隔 3 位数字就中断该值 而不是 3 位
  • 如何使 Meteor 上的服务器可以访问文本文件

    我很惊讶我无法在这里搜索我的答案 似乎没有其他人遇到这个问题 当您运行meteor服务时 js html等被打包在 meteor local build文件夹中 但它似乎排除了不是js或html的内容 我有一个名为 magicsets 的文
  • 如何在纯 HTML 页面中返回特定的 HTTP 状态代码

    Google 建议当网站暂时不可用时返回 503 HTTP 响应 我有一些纯 HTML 网站 如何在纯 HTML 网站中返回 503 状态 我使用的是带有 Apache 的 Linux 机器 您必须在服务器上而不是在 HTML 文件中设置状
  • 为什么 Firefox 对 Helvetica 的处理方式与 Chrome 不同?

    Firefox 和 Mac 版 Chrome 中以 Helvetica 呈现的文本的垂直位置及其内容区域的大小有所不同 例如 在 Chrome 中 如果行高与字体大小相同 则下行部分将被剪裁 我调整了图中块元素的位置 保持基线一致 以说明大
  • EaselJS Alpha 遮罩滤镜

    我对 Canvas 还很陌生 我一直在尝试将图像颠倒过来EaselJS Alpha 蒙版 http www createjs com demos easeljs alphamaskreveal示例 以便初始图像清晰 并且您可以paint是模
  • 在成功回调之前修改 JSONP 结果

    我想从外部服务加载一些 JSON 数据 然而 它提供 foo bar useful 而我真正关心的是 有用 的部分 我需要将那部分传递给success打回来 我正在尝试使用Deferred一次从多个数据源加载 类似this https st
  • 如何控制谷歌地图标记的不透明度

    我需要根据时间使一些标记半透明 有什么方法可以控制标记的 CSS 不透明度吗 或者是否可以可靠地找出标记的 DOM 元素 我使用 Google 地图 API v3 标记的不透明度可以设置为marker setOptions opacity
  • 是否可以在 html 中将单选按钮标签助手值属性设置为“已选中”?

    我正在寻找一种方法来使用单选按钮标签帮助器上的值属性来通知按钮是否被选中 而不是使用单独的字段进行选择 我找到了 Shyju 的答案相关问题 https stackoverflow com questions 34570908 radio
  • Twitter 引导选项卡和 JavaScript 事件

    我正在一个项目中使用 twitter bootstrap 特别是它的选项卡功能 http twitter github com bootstrap javascript html tabs http twitter github com b
  • jQuery 不断 ping 以获得 Ajax 响应

    如何使用 jQuery 不断运行 PHP 脚本并每秒获取响应 并将鼠标上的少量数据发送到同一脚本 我真的需要添加一些随机扩展才能让这样一个简单的计时器工作吗 迭代是人类的 递归是神圣的 L 彼得 多伊奇 http www devtopics
  • 如何在 HTML 中创建可编辑的下拉列表?

    我想创建一个带有下拉列表的文本字段 让用户选择一些预定义的值 用户还应该能够键入新值或从下拉列表中选择预定义值 我知道我可以为此使用两个小部件 但在我的应用程序中 如果将其统一在一个小部件中会更符合人体工程学 是否有标准小部件或者我必须使用

随机推荐

  • 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 因此窗口上的滚动事件不起作用 作为解决方法 我决