list.vue 组件
<template>
<div ref="scroll">
<h1>app根组件</h1>
<hr>
<p class="item" v-for="(item,index) in items" :key="index">[商品名称]: {{item.name}}-[商品价格]:¥{{item.price}}</p>
</div>
</template>
<script>
export default {
data(){
return {
items: []
}
},
created(){
let arr=[];
for(var i=0;i<10;i++){
this.items.push({
id:i,
name:'商品'+i,
price:i
});
}
},
mounted() {
window.addEventListener("scroll", this.onScroll);
},
methods: {
onScroll() {
//可滚动容器的高度
let innerHeight = this.$refs.scroll.clientHeight;
//屏幕尺寸高度
let outerHeight = document.documentElement.clientHeight;
//可滚动容器超出当前窗口显示范围的高度
let scrollTop = document.documentElement.scrollTop;
//scrollTop在页面为滚动时为0,开始滚动后,慢慢增加,滚动到页面底部时,出现innerHeight < (outerHeight + scrollTop)的情况,严格来讲,是接近底部。
console.log(innerHeight + " " + outerHeight + " " + scrollTop);
if (innerHeight <= outerHeight + scrollTop) {
//加载更多操作
// console.log("loadmore");
for(var i=0;i<10;i++){
var now=Date.now();
// 更新数据; 在items数组中新增10条数据
this.items.push({
id:now,
name:'商品'+now,
price:now.toString().substr(10,3)
});
}
}
}
}
};
</script>
<style scoped lang="scss">
.item{
border:1px solid #CCC;
padding: 10px;
margin: 10px;
}
</style>
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。