JS监听元素滚动

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

使用监听 scroll 可以实现监听页面滚动或者元素滚动是否到底

案例代码

<template>
  <div class="app-container">
    <div class="box">
      <div v-for="(item,index) in count" :key="index" class="item">
        {{ item }}
      </div>
    </div>
  </div>
</template>

<script>
export default {
  name: "test",
  data() {
    return {
      count: 20
    }
  },
  mounted() {
    this.handlerNodeScroll()
  },
  methods: {
    // 监听元素滚动
    handlerNodeScroll() {
      let that = this
      // 函数防抖
      let fun = that.debounce(e => {
        // 距顶部
        let scrollTop = e.target.scrollTop;
        // 可视区高度
        let clientHeight = e.target.clientHeight;
        // 滚动条总高度
        let scrollHeight = e.target.scrollHeight;
        // 如果当前距离顶部的值加上可视区域的值大于等于总高度,则任务滚动条触底
        if (Math.ceil(scrollTop + clientHeight) >= scrollHeight) {   //容差:20px
          console.log('滚动到底部');
          if (that.count >= 50) return
          that.count += 10
        }
      }, 500)
      
      // 监听滚动
      let box = document.querySelector(".box");
      box.addEventListener("scroll", function (e) {
        fun(e)
      })
    },
    // 函数防抖
    debounce(handle, delay) {
      let timer = null;
      return function () {
        let _self = this,
          _args = arguments;
        clearTimeout(timer);
        timer = setTimeout(function () {
          handle.apply(_self, _args)
        }, delay)
      }
    }
  }
}
</script>

<style scoped lang="scss">
.box {
  width: 200px;
  height: 400px;
  border: 1px solid #7c7c7c;
  padding: 15px;
  box-sizing: border-box;
  overflow: auto;

  .item {
    margin-bottom: 10px;
    height: 40px;
    line-height: 40px;
    text-align: center;
    background-color: #1482f0;
    font-size: 18px;
    font-weight: 700;
    color: white;
  }
}
</style>

运行效果

js 监听滚动条元素,javascript,vue,javascript,前端,html文章来源地址https://www.toymoban.com/news/detail-672671.html

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

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

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

相关文章

  • 〖大前端 - 基础入门三大核心之JS篇㊲〗- DOM改变元素节点的css样式、HTML属性

    说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费 , 如需要项目实战或者是体系化资源,文末名片加V! 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司担任研发部门CTO。 荣誉: 2022年度博客之星Top4、2023年度超

    2024年02月04日
    浏览(65)
  • 前端HTML、CSS、JS、VUE3 汇总

    学习https://developer.mozilla.org/zh-CN/docs/Learn/CSS 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 使用VS Code运行前端代码 在VS Code上安装前端插件 正在更新中~ ✨ 提示:这里可以添加本文要记录的大概内容: 学习路线 知识定位 HTML基础 标签、表格、表单、

    2024年02月13日
    浏览(51)
  • 基于【ESLint+JavaScript Standard Style】标准的VUE/JS/html风格指南

    本规范是适用于小仙男团队及前端团队所搭建的各种前端框架代码的通用风格规范指南; 使用时,请遵循指南细则进行代码风格约束,并在提交之前确保进行代码风格的修正操作; 本规范参考WEB行业知名的JavaScript Standard Style 规范指南。并将在后续使用过程中,逐步进行符合

    2023年04月13日
    浏览(44)
  • JS 监听元素dom变化

    我们在开发中,会遇到一些需求,需要监听元素变化,比如元素属性变化,元素大小变化,今天,我们就来聊聊俩种常用实现监听的方案,其他的自行研究 一、ResizeObserver ResizeObserver 是来监听元素的大小位置发生变化,也可以说是回流(重排)时的变化 然后,我们创建监听器,

    2024年02月15日
    浏览(61)
  • js使页面滚动到特定元素上

    1. 使用Element.scrollIntoView()方法

    2024年02月07日
    浏览(40)
  • js判断手指的上滑,下滑,左滑,右滑,事件监听 和 判断鼠标滚轮向上滚动滑轮向下滚动

    const scrollFunc = (e) = { e = e || window.event; let wheelDelta = e.wheelDelta ? e.wheelDelta : -e.detail * 50; if (wheelDelta 0) { console.log(wheelDelta + ‘滑轮向上滚动’); let dom = document.querySelector(‘.header-contanier’); dom.style.display = ‘flex’; } if (wheelDelta 0) { console.log(wheelDelta + ‘滑轮向下滚动’); let dom =

    2024年02月12日
    浏览(70)
  • JavaScript中的scrollTop(js中的scrollTop,滚动到顶部,javascript滚动到顶部)

    简述:scrollTop是JavaScript中一个非常有用且重要的方法,它用于获取或设置元素的垂直滚动条位置,实现各种滚动相关的功能,无论是回到顶部、滚动到指定位置还是监听滚动事件,都需要用到scrollTop,在本文中,我们将深入了解scrollTop的用法和实际应用,这是一张scrollTop的关

    2024年02月08日
    浏览(48)
  • HTML+JS+CSS歌词滚动效果

    这些代码主要实现了歌词的初始化、显示和随音频播放的同步滚动。其中, initWords 函数用于将歌词字符串解析成数据数组, parseTime 函数用于将时间字符串转换为秒数。通过 setOffset 函数实现歌词的滚动和高亮显示。最后,添加了一个滚动事件监听器,以便用户通过滚动调整

    2024年01月17日
    浏览(46)
  • 博客无限滚动加载(html、css、js)实现

    这是一个简单实现了类似博客瀑布流加载功能的页面,使用html、css、js实现。简单易懂,值得学习借鉴。👍 演示地址:https://i_dog.gitee.io/easy-web-projects/infinite_scroll_blog/index.html index.html style.css script.js 该项目从github中的vanillawebprojects仓库收集。 原始代码: 原始代码地址 https

    2024年02月07日
    浏览(41)
  • 【前端】html2canvas生成图片空白排查data:;(js vue react uniapp)

    因为要做一个分享图,就用到了html2canvas,一开始是好好的,今天随便测了下,发现图片显示不出来了。打印了下,生成的图片链接变成了 data:; 。后面一步一步地排查,发现是页面内容太多了,删减一点内容就能显示出来。然后我又去认真看了下html2canvas的各个参数,发现可

    2024年02月03日
    浏览(59)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包