移动端左滑滚动加载

本文详细解释了HTML5中的client、scroll和offset属性在处理元素可见区域、滚动位置及滚动触发事件中的作用,同时展示了Vue-H5、微信小程序和uniapp中scroll-view组件的滚动事件用法。
摘要由CSDN通过智能技术生成

client、scroll、offset

client:

属性含义
clientWidth,clientHeight只读属性,表示一个元素的可见区域宽高,以像素计单位;该属性即包括元素的padding,但不包括border,margin以及改元素滚动条的宽高。
clientLeft,clientTop仅仅表示元素的左边框宽度和上边框宽度。

sroll:

属性含义
scrollTop,scrollLeft可读可写属性,表示一个元素在有滚动条的情况下,被卷去的高宽。
scrollWidth,scrollHeight只读属性,表示一个元素正文全文宽高

offset:

属性含义
offsetWidth,offsetHeight只读属性,表示一个元素的布局宽高,等于这个元素的宽高加上padding,border
offsetLeft,offsetTop只读属性,表示当前元素距离上级有定位的元素左边或上边边框的距离,如果上级元素没有定位,则往更上一级寻找,直至body。

vue-h5

<div @scroll="loadData($event)">
	<div v-for="(item,idx) in week" :key="idx">{{item}}</div>
</div>
loadDays(event) {
      if (this.loading) {
        return;
      }
      const el = event.target;
      // 元素划过屏幕的宽度 + 元素可见宽度 >= 元素正文宽度,加载数据
      if (Math.ceil(el.scrollLeft + el.clientWidth) >= el.scrollWidth) {
        this.loading = true;
        // get data
        this.loading = false;
      }
    },
   // 下滑滚动: el.scrollTop+el.clientHeight >= el.scrollHeigh

微信小程序

微信小程序页面组件中, scroll-view,提供了bindscrolltolower方法,滚动到底部/右边时触发。

<scroll-view scroll-x bindscrolltolower="loadDays">
  <view wx:for="{{items}}" wx:key="index">{{item}}</div>
</scroll-view>
  loadDays() {
    if (this.data.loading) {
      return;
    }
    this.setData({ loading: true });
    // get data
    this.setData({ loading: false });
  },

uniapps

uniapp也可使用 scroll-view,使用@scrolltolower方法,滚动到底部/右边时触发。

<scroll-view scroll-x @scrolltolower="loadDays">
  <view v-for="(item,idx) in items" :key="idx">{{item}}</div>
</scroll-view>
  loadDays() {
    if (this.loading) {
      return;
    }
    this.setData({ loading: true });
    // get data
    this.setData({ loading: false });
  },
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值