本文实例为大家分享了Vue组件实现触底判断的具体代码,供大家参考,具体内容如下
非常简陋的代码,以后有空回来完善
子组件代码:
<template>
<div class="scroll"></div>
</template>
<script>
export default {
name:'Scroll',
methods:{
scrollEvent(){
if (document.documentElement.scrollTop
+ document.documentElement.clientHeight
>= document.body.scrollHeight) {
this.onBottom();
}
}
},
props:{
onBottom:Function
},
mounted(){
window.addEventListener('scroll', this.scrollEvent,false);
},
destroyed () {
window.removeEventListener('scroll', this.scrollEvent,false);
}
}
</script>
document.documentElement.scrollTop + document.documentElement.clientHeight >= document.body.scrollHeightb表示已经到页面底部了,那么就触发函数onBottom,函数onBottom是父组件传递过来的用于回调的函数
父组件代码:
把子组件scroll放在父组件的底部(切记,不然函数不起作用),用作触底判断。
<template>
<div class="wrap">
<scroll :onBottom = "onBottom"></scroll>
</div>
</template>
<script>
import Scroll from '@/components/scroll'
export default {
name: 'roll',
components:{
Scroll,
},
methods:{
onBottom(){
console.log('bottom')
}
}
}
</script>
<style type="text/css" lang="stylus" scoped>
.wrap{
height: 1000px;
background: grey;
width: 100%;
}
</style>
父子传值也可以传递data里面的函数。这里我的回调函数里面进行的操作是到底部后console出bottom
效果:
可以看到触发频次比较高,其实子组件里面应该加一个函数节流函数,限制触发频率。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。