js两种滚动事件写法

这篇具有很好参考价值的文章主要介绍了js两种滚动事件写法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方式一:可判断滚动条滚动方向。

$(window).scroll(() => {
    // 滚动条距文档顶部的距离, || 是做兼容处理的
    let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
    // 滚动条滚动的距离
    let scrollStep = scrollTop - this.oldScrollTop            
    // 更新-滚动前,滚动条到文档顶部的距离
    this.oldScrollTop = scrollTop

    if (scrollStep > 0) {
        // console.log('滚动条向下滚动')
    }
    else {
        // console.log('滚动条向上滚动')
    }
})

根据滚动条滚动的距离是否大于 0 来判断向上还是向下滚动。不太适合用于下滚无限加载,因为加载需要有固定的底部距离,此写法不太好确定,效果一般。

方式二:只判断滚动条底部到可视区底部的距离,即可视区底部到页面底部的距离,因此方向是只向下的。

$(window).scroll(() => {
    let scrollH = document.body.scrollHeight
    let scrollT = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
    let clientH = document.documentElement.clientHeight
    let instance = scrollH - scrollT - clientH

    if (instance < 50) {
        // console.log('滚动条向下滚动')
    }
})

两种方式对于向下滚动没有大的区别,第二种方向是专门针对向下滚动的,用于下滚无限加载很简单实用。文章来源地址https://www.toymoban.com/news/detail-507853.html

到了这里,关于js两种滚动事件写法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js监听滚动事件

    监听滚动事件可以使用 window 对象的 scroll 事件。具体代码如下: 当页面滚动时, scroll 事件就会被触发,然后就可以在事件处理函数中编写相应的逻辑来实现需要的功能,比如实现吸顶效果、懒加载图片等等。 在事件处理函数中,可以使用 document.documentElement.scrollTop 或 doc

    2024年02月16日
    浏览(45)
  • flutter 实现定时滚动的公告栏的两种不错方式

    自定义一个类继承StatefulWidget 所有公告信息存放在list里 逻辑如下 我们可以发现启动了一个timer计时器计时5秒,hasClients检查其目标对象(我们用的是listview)是否被渲染,没有被渲染会出大乱子 另外,currentPostion根据当前偏移量得出,下一个position根据当前偏移量加上一个v

    2024年01月22日
    浏览(47)
  • JS两种方法判断字符串是否包含中文

    第一种是正则表达式来判断,判断输入的字符中是否包含中文。 第二种是通过charCodeAt()来判断,字符串.charCodeAt(index)255 就是中文,否则是英文。

    2024年02月13日
    浏览(70)
  • js获取键盘按键事件、判断键盘按键事件、调用键盘按键事件

    第一:获取键盘按键事件 第二:判断键盘按键事件 第三:调用键盘按键事件

    2024年02月11日
    浏览(54)
  • js 判断两个字符串是否相等(有两种方法)

    使用比较运算符判断两个字符串是否相等 可以使用比较运算符 === 或 == 来判断两个字符串是否相等。例如: 在上述代码中,我们定义了两个字符串变量 str1 和 str2 ,并使用 === 运算符来比较它们的值。如果两个字符串相等,则输出 两个字符串相等 ;否则输出 两个字符串不相

    2024年02月05日
    浏览(79)
  • JS事件监听两种使用方法

    首先说一下什么是事件监听, 事件监听就是通过某一事物的源对象(当某种事件发生时),然后向监听器传送某种事件对象,监听器里面封装了某种事件信息,接到事件对象后进行某种处理,这就是事件监听。简单来说以学校放课铃作为事物源对象,然后放学 设置事件监听的

    2024年02月09日
    浏览(50)
  • 【JS】公共鼠标滚动事件(从下进入,从上进入),html 版本

    左右分屏滚动 vue 版本

    2024年02月10日
    浏览(39)
  • Vue (v-bind指令、el与data的两种写法、理解MVVM、数据代理、V-no事件处理、双向数据绑定V-model、登陆页面实现

    V-no用于监听DOM对象 v-model 指令用来在 input、select、textarea、checkbox、radio 等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定的元素的值。 按钮的事件我们可以使用 v-on 监听事件,并对用户的输入进行响应。 下拉选项实例:

    2024年01月23日
    浏览(61)
  • 刷题笔记之四(Fibonacci数列+合法括号序列判断+跳石板+幸运的袋子+两种排序方式+最小公倍数)

    目录 1. Math类是封装了常用的数学运算 2. Object类的12种常用方法 3. Fibonacci数列 4. 合法括号序列判断 5. 子类父类trycatch调用 6. 跳石板 7. 幸运的袋子 8.跳出forEach循环break 9 .java为后缀的文件中,只能有一个public修饰并且文件名相同的类 10. a++先使用后++ 11. 两种排序方式 12. 最小公

    2024年02月21日
    浏览(35)
  • 【Unity】两种方式实现弹跳平台/反弹玩家(玩家触发与物体自身触发事件实现蹦床的物理效果)

    只实现物理反弹的效果,不实现蹦床会有的视觉拉伸效果,请自行找相关代码 经过我的实践,我发现要想实现一个平台反弹的效果,要么就选择给player添加一个物理材质(平台加了没用), 但是这样会造成一个问题,如果我们要弄一个3d控制器的游戏,那么没理由让玩家什么

    2024年02月07日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包