首页 > 其他 > 详细

vue-监听视图滚动-加载下一页数据(鼠标滚动到底,加载)

时间:2021-05-24 15:33:23      阅读:39      评论:0      收藏:0      [点我收藏+]
<div class="daily-list" ref="list">
            <template>
                <div v-for="(item,index) in arrayItem" :key="index">
                    <div>{{item}}</div>
                </div>
            </template>
        </div>

 data:

 arrayItem: 100,
 isLoading: false
 
style:
 
.daily-list{
    width300px;
    positionfixed;
    top0;
    bottom0;
    left150px;
    /* 具备滚动的能力 */
    overflowauto;
    border-right1px solid #d7dde4;
}
mounted() {
         // 获取dom
         const $list = this.$refs.list;
         // 监听内容的滚动事件
            $list.addEventListener(‘scroll‘, () => {
                if (this.isLoading) return;
                // 已经滚动的距离加页面的高度,等于整个内容区域高度时,视为接触底部
                console.log(‘已经滚动距离‘,$list.scrollTop);
                console.log(‘页面的高度‘,document.body.clientHeight);
                console.log(‘内容区域高度‘,$list.scrollHeight);
                if
                (
                    $list.scrollTop
                    + document.body.clientHeight
                    >= $list.scrollHeight
                )
                {
                   console.log(‘到底了‘);
                   this.isLoading = true;
                   setTimeout(()=>{
                       this.arrayItem = 200;
                       this.isLoading = false;
                   },2000)
                }
            });
    },

 或者

        <div class="daily-list" ref="list" @scroll="handleScroll">
            <template>
                <div v-for="(item,indexin arrayItem" :key="index">
                    <div>{{item}}</div>
                </div>
            </template>
        </div>
methods: {
 handleScroll(){
            const $list = this.$refs.list;
            if (this.isLoadingreturn;
            if
                (
                    $list.scrollTop
                    + document.body.clientHeight
                    >= $list.scrollHeight
                )
                {
                   console.log(‘到底了‘);
                   this.isLoading = true;
                   setTimeout(()=>{
                       this.arrayItem = 200;
                       this.isLoading = false;
                   },2000)
                }
        }
}
 
技术分享图片

 

vue-监听视图滚动-加载下一页数据(鼠标滚动到底,加载)

原文:https://www.cnblogs.com/fdxjava/p/14803068.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!