h5列表/el-table组件的滚动条回滚

h5列表页

 :for=""给查询条件item.attributes['for].nodeValue或者item.attributes[0].nodeValue赋值

滚动条的父元素加ref

<div ref="task">
  <div ref="listRef" 
    :for="item.id"
    v-for="(item,index) in list" 
    :key="index"></div>
</div>

滚动条定位到指定位置

this.$nextTick(() => {
							let target = null
							// 循环获取指定元素高度
							this.$refs.listRef.some((item, index) => {
								if (item.attributes['for'].nodeValue == d.taskId) {
									target = item.offsetTop
								}
							})
							let top = 0
							const timeTop = setInterval(() => {
								// h5用body pc用documentElement
								//滚动条每次滚动100
								this.$refs.task.scrollTop = top += 100
								if (top > target) {
									this.$refs.task.scrollTop = target - 110;
									clearInterval(timeTop)
								}
							}, 5) //每次滚动的时间间隔
})

子组件的滚动条回滚

根据ref获取高度数据

<el-table :data="parkingData.list"
                      height="578px"
                      ref="refTable"
                      @row-click="tabClick">
if (this.showList) {
          // 等列表渲染完,不然获取不到ref
          this.$nextTick(() => {
            let i = null // 点击行的index
            let target = null // 点击行元素的高度
            let row = [] // 所有行元素dom
            // 循环ref根据点击行的id获取index
            this.$refs.refTable.tableData.some((item, index) => {
              if (item.id === this.rid) {
                i = index
              }
            })
            row = this.$refs.refTable.$el.getElementsByClassName('el-table__row')
            let r = 0 // 行元素dom的index
            // 循环所有行元素dom,根据index获取对应dom的高度
            for (var item of row) {
              if (r === i) target = item.offsetTop
              r++
            }
            let top = 0 // 滚动条高度的判断条件
            // 滚动条滑动事件
            const timeTop = setInterval(() => {
              // 获取ref.refTable的滚动条高度
              this.$refs.refTable.bodyWrapper.scrollTop = top += 200
              if (target < top) {
                clearInterval(timeTop)
              }
            })
          })
        }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值