Vue+ElementUI使用el-popover内滚动事件穿透解决

本文介绍了如何在Vue项目中,使用ElementUI的el-popover组件时,避免滚动事件穿透导致底部页面跟随滚动。通过在main.js中定义函数noScroll和canScroll来分别禁止和恢复页面滚动,并在el-popover的@hide事件中调用openScroll方法,实现el-popover关闭时恢复页面滚动功能。
摘要由CSDN通过智能技术生成

Vue+ElementUI使用el-popover内滚动事件穿透解决

问题描述

el-popover中含有滚动事件,触发滚动事件的同时,底部页面也同时触发。
功能要求:当el-popover触发滚动时,底部页面禁止滚动。el-popover关闭时,底部页面恢复滚动。

解决问题

  1. 在main.js中添加以下代码
//主页禁止滑动
Vue.prototype.noScroll = function () {
    var mo = function (e) {
        e.preventDefault()
    }
    document.body.style.overflow = 'hidden'
    document.addEventListener('touchmove', mo, false)//禁止页面滑动
}

//主页恢复滑动
Vue.prototype.canScroll = function () {
    var mo = function (e) {
        e.preventDefault()
    }
    document.body.style.overflow = ''//出现滚动条
    document.removeEventListener('touchmove', mo, false)
}
  1. 在你需要禁止/恢复底部页面滚动的地方添
this.noScroll()//禁止滚动
this.canSroll()//恢复滚动
  1. el-popover在点击空白处关闭之后,开启滚动。el-popover有@hide事件,可在关闭的时候触发。
@hide="this.openScroll()"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值