1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > JS监听DOM元素滚动

JS监听DOM元素滚动

时间:2023-02-19 10:01:01

相关推荐

JS监听DOM元素滚动

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

// 获取需要监听滚动的DOM元素const element = document.getElementById('your-element-id');// 监听滚动事件element.addEventListener('scroll', function() {// 判断是否滚动到页面底部if (element.scrollHeight - element.scrollTop === element.clientHeight) {console.log('已滚动到页面底部');// 在这里执行你的操作}});

在vue中的示例:

<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 {data() {return {}},mounted() {this.$nextTick(()=>{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 (scrollTop + clientHeight >= scrollHeight) { console.log('滚动到底部');}}, 50)// 监听滚动let box = document.querySelector(".box");box.addEventListener("scroll", (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>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。