问题,自己再项目中有回到顶部底部组件,在模态框中缺无法使用,怎么监听dom滚动条都无济于事;
首先都是在挂载函数里面添加了监听
mounted() {
// window.addEventListener("scroll", this.handleScroll,true); // 监听(绑定)滚轮滚动事件
},
但是这样只能监听到body的滚动,当模态框弹出,我仔细检查发现,element 把body的滚动条直接隐藏,而是模态框里面的滚动条,所以在这个里面监听不到任何数据,发现问题所在了,那么解决就简单了;
1.我是使用 @scroll="handleScroll" 在我需要监听的模块中使用
handleScroll(e) {
let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
this.scrollTop = e.srcElement.scrollTop
// console.log(this.scrollTop) // 获取你操作的滚动条高度
this.visible =e.srcElement.scrollHeight > 500
},
2.在对应模态框里面加入ref属性,然后回到顶部底部方法就直接设置滚动条位置即可
//底部
backToBottom() {
//console.log(this.$refs.scollElement);
if (this.isMoving) return
const start = this.$refs.scollElement.$el.scrollTop
let end = this.$refs.scollElement.$el.scrollHeight
this.$refs.scollElement.$el.scrollTo(start , end)
},
//顶部
backToTop() {
// scollElement
this.$refs.scollElement.$el.scrollTo(0, 0)
},