简单列表滚动 通用

该博客介绍了一个JavaScript函数`ScrollList`,用于监听滚动事件并自动触发加载更多内容。函数接受可滚动DOM元素、定时器延迟时间和是否循环加载作为参数。当元素滚动到底部时,会触发一个事件以请求更多数据。同时,它还处理了鼠标移入和移出事件以控制定时器的开启和关闭。这个功能对于无限滚动列表或动态加载内容的页面非常有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 可以自己加一些参数 (滚动距离,是否循环加载,到底部时可以弹出一个事件进行请求等等)
  • 如果假如异步请求记得关闭定时器

/**
 * 
 * @param {传入可滚动的真实dom} dom  
 * @param {定时器延时} time 
 * @param {是否循环} loop 
 * @param {滚动距离} loop 
 */
function ScrollList(dom, time = 100, loop = true) {
    const copyDom = dom;
    let timeCo = null;
    if (!copyDom) {
        return false
    }
    // 创建定时器开始滚动元素
    function CreatedTime() {
        timeCo = setInterval(() => {
            // 元素⾃增距离顶部1像素
            copyDom.scrollTop += 1;
            // 判断元素是否滚动到底部(可视⾼度+距离顶部=整个⾼度)
            if (copyDom.clientHeight + copyDom.scrollTop == copyDom.scrollHeight) {
                // 重置table距离顶部距离
                copyDom.scrollTop = 0;
            }
        }, time);
    }
    CreatedTime()
    // 移入事件
    copyDom.addEventListener("mouseover",function(){
        clearInterval(timeCo)
    })
    // 移出事件
    copyDom.addEventListener("mouseout",function(){
        CreatedTime()
    })
}
export {
    ScrollList
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值