JS - 处理元素滚动

业务功能中时常有元素滚动的功能,现在就总结一下一些常用的事件。

一、定位滚动元素

做一切滚动操作之前都应该先定位到滚动元素,再做其他操作,如滚动顶部,获取滚动距离、禁止滚动等。

把以下代码复制粘贴到浏览器 Console 面板,敲一下回车。然后滚动滚动条就可以看到打印:

 function findscroller(element){
        element.οnscrοll=function () {
            console.log(element)
        }
        Array.from(element.children).forEach(findscroller)
  }
  findscroller(document.body)

二、添加滚动事件

找到滚动的元素之后就可以添加事件,如,滚动到顶部

1. 使用Window.scrollTo API
window.scrollTo({
    left: 0,
    top: 0,
    behavior: 'smooth'
})
2. 使用requestAnimationFrame
const scrollToTop = () => {
    let sTop = document.documentElement.scrollTop || document.body.scrollTop
    if (sTop > 0) {
        window.requestAnimationFrame(scrollToTop)
        window.scrollTo(0, sTop - sTop / 8)
    }
}

三、监听滚动事件

移除组件的时候记得卸载监听事件

 useEffect(() => {
    window.addEventListener('scroll', handleScroll);
    return () => {
      window.removeEventListener('scroll', handleScroll);
    };
  }, []);
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
el-table是Element UI框架中的一个表格组件,它提供了丰富的功能和配置选项。要实现el-table的自动滚动,可以通过以下步骤进行操作: 1. 首先,确保el-table的容器元素设置了固定的高度和overflow属性,以便内容超出容器高度时可以出现滚动条。 2. 在el-table的外层容器上添加一个滚动事件监听器,可以使用JavaScript或Vue的@scroll指令来实现。 3. 在滚动事件的处理函数中,判断滚动条是否到达了底部。可以通过比较scrollTop、clientHeight和scrollHeight属性来判断。 4. 如果滚动条到达了底部,可以通过调用el-table的load方法或者修改数据源来加载更多数据。 下面是一个示例代码: ```html <template> <div class="table-container" @scroll="handleScroll"> <el-table :data="tableData" height="300px"> <!-- 表格列配置 --> </el-table> </div> </template> <script> export default { data() { return { tableData: [], // 表格数据 // 其他数据和配置项 }; }, methods: { handleScroll() { const container = this.$el.querySelector('.table-container'); if (container.scrollTop + container.clientHeight >= container.scrollHeight) { // 到达底部,加载更多数据 this.loadMoreData(); } }, loadMoreData() { // 加载更多数据的逻辑 }, }, }; </script> ``` 请注意,以上代码只是一个示例,具体的实现方式可能会根据你的项目需求和使用的框架而有所不同。你可以根据自己的实际情况进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值