首页 > 代码库 > vue 滚动加载
vue 滚动加载
<template> <div class="wraper" @scroll="onScroll($event)"> <div class="item" v-for="item in items"> {{item}} </div> </div></template><script>export default { data () { return { items:[], pgSize:36, rawItems:[], pgNo:1 } }, ready () { for(var i=0;i<=1000;i++){ this.rawItems.push(i) } this.changePgItems() }, methods:{ onScroll(event){ var offsetHeight = event.currentTarget.offsetHeight, scrollHeight = event.target.scrollHeight, scrollTop = event.target.scrollTop, scrollBottom = offsetHeight + scrollTop if(scrollTop===0) { if(this.pgNo===1) { return } this.pgNo-- this.changePgItems() event.target.scrollTop=offsetHeight-1 } if(scrollBottom===scrollHeight || scrollBottom===scrollHeight+2) { if(this.pgNo==Math.ceil(this.rawItems.length/this.pgSize)) { return } this.pgNo++ this.changePgItems() event.target.scrollTop=1 } }, changePgItems(){ var start = (this.pgNo-1) * this.pgSize, items = this.rawItems.slice(start,this.pgSize+((this.pgNo-1)*this.pgSize)) this.items = items } }}</script><style lang="less">.wraper{ border:1px solid red; height:100vh; overflow-y: auto; box-sizing: border-box; .item{ height: 30px; border-bottom: 1px solid #ccc; }}</style>
vue 滚动加载
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。