//按钮的组件
<template enter-active-class='animated fadeInUp' leave-active-class='animated fadeOutDown' >
<div class="back-top" >
<i class="fa fa-arrow-circle-o-up"></i>
</div>
</template>
<script>
export default {
name:'back-top',
// data:{
// isShow:true
// },
methods:{//定义了一个方法来监控滚动条的高度,当高度>200的时候显示按钮
backTop(){
window.addEventListener('scroll',function(e){
if(this.screenY > 200){
this.style.display = 'block'
}else{
this.style.display = 'none'
}
})
}
}
}
</script>
<style lang='scss' scoped>
</style>
根据代码我有两个疑问
1.监控滚动条的方法已经写了,如何让它和指令绑定,达到监控滚动条的高度来控制按钮的显隐?
2.在methods中定义的方法,如果console.log(this.scrollY)控制台中没有任何的显示,但是如果把监控滚动条的高度代码放到mounted()钩子函数中就可以console.log(this.scrollY),这是什么原理?
显示的话直接给按钮绑个
v-if
就行然后你的
backTop
放在methods
里不会自动调用,所以你的console.log(this.scrollY)
自然没反应,放到mounted
里,vue生成实例的时候就会调用这个函数最后你在backTop里判断滚动条高度然后直接修改
isShow
的值应该就行了。