一、问题描述
在使用Element的InfiniteScroll 无限滚动时候出现以下错误:
TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'
InfiniteScroll的更多用法element官网
二、解决办法
给需要使用 InfiniteScroll 的元素或者它的父级元素加上 overflow:auto; 属性即可。
<template>
<div class="home">
<div v-infinite-scroll="loadMore" v-for="i in count" class="infinite-list" :key="i">{{ i+1 }}</div>
</div>
</template>
<script>
export default {
data() {
return {
count:5
}
},
methods: {
loadMore() {
// this.count+=1;
console.log('加载...')
}
}
};
</script>
<style lang="scss">
.home {
.infinite-list{
width: 500px;
height: 40px;
line-height: 40px;
background: lightblue;
margin:10px;
overflow:auto; // 加上该属性即可。由浏览器定夺,如果内容被修剪,浏览器就会显示滚动条以便查看其余内容
}
}
</style>
三、注意事项
InfiniteScroll 无限滚动组件, 滚动至底部时,加载更多数据。据官网描述其基础用法:
给实现滚动加载的元素(会出现滚动条的元素)添加 v-infinite-scroll属性,属性值是相应的加载方法名,如loadMore,即可实现滚动到底部时触发该loadMore 方法
注意属性和css样式的设置:
- 给设置了 v-infinite-scroll的元素或者其父元素设置高度如
height:200px;,并让其超出高度显示滚动条overflow:auto; infinite-scroll-disabled="disabled",这里的disabled是computed里面的属性,利用其控制是否继续加载。当disabled为true的时候,该加载函数loadMore函数将不再被触发。infinite-scroll-immediate默认为 true,即 立即执行加载方法loadMore,以防初始状态下内容无法撑满容器。即loadMore会先执行一次,这里设置false,是让其初始不执行,等滚动到底部时,再执行该loadMore方法。
<template>
<div class="infinite-list-wrapper">
<ul class="list" v-infinite-scroll="loadMore" infinite-scroll-disabled="disabled" infinite-scroll-immediate="false">
<li v-for="i in count" class="list-item" :key="i">{{ i }}</li>
</ul>
<p v-if="loading">加载中...</p>
<p v-if="noMore">没有更多了</p>
</div>
</template>
<script>
export default {
data() {
return {
count:5,
loading: false
};
},
computed: {
noMore() {
return this.count >= 20;
},
disabled() {
return this.loading || this.noMore;
}
},
methods: {
loadMore() {
console.log("加载...")
this.loading = true;
setTimeout(() => {
this.count += 2;
this.loading = false;
}, 2000);
}
}
};
</script>
<style lang="scss">
.home {
.infinite-list-wrapper{
height:200px; // 1. 指定高度
overflow: auto; // 2. 内容超过指定高度 出现滚动条
width: 500px;
border:1px solid green;
margin-top:120px;
.list-item{
background: lightblue;
margin:10px;
height:30px;
line-height: 30px;
}
}
}
</style>
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。



