监听滚动事件

1.vue组件添加滚动事件:

<template>
  <div class="body-container" @scroll="scrollEvent">
  </div>
<template>
 
export default {
    name: 'demo',
    data () {
      return {
        msg: '',
      }
    },
    methods: {
      scrollEvent(e){
       		//当前盒子的滚动高度+当前盒子绝对高度>当前盒子可滚动高度-100px时,加载更多
     		 if(e.srcElement.scrollTop+e.srcElement.offsetHeight>e.srcElement.scrollHeight-100){   
     		        console.log()        
   			 }
          },
    }
  1. 计算滚动盒子高度
    移动端中滚动框的高度受设备的影响,由于移动端中使用rem的缘故,因此高度是不定的,所以计算高度是不可少的。

一般使用
document.getElementById(‘div’).offsetHeight;
document.body.offsetHeight

获取元素的高度,用这种方法将设备高度减去不滚动的区域高度,就是滚动区域的高度了。

3.添加滚动条事件

 export default {
        name: 'demo',
        data () {
          return {
            msg: '',
          }
        },
        methods: {
          	handleScroll(e){		    
			      // 滚动条到顶部的位置
			      const scrollTop = e.srcElement.scrollTop
			      // 滚动条内容的总高度
			      const scrollHeight = e.srcElement.scrollHeight
			      // 可视窗口高度
			      const offsetHeight = e.srcElement.offsetHeight
			    
			      console.log(scrollTop+"  "+scrollHeight+"  "+offsetHeight);
			      // 滚动的像素+容器的高度>可滚动的总高度
			      if (scrollTop + offsetHeight - scrollHeight >= -100) {
			           this.currentPage++;
			           if(this.currentPage < this.total/this.pageSize){
			              this.initial1()
			           }
			      }
			} 
	 },

     mounted() {
        window.addEventListener('scroll',this.handleScroll,true)
      }
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值