弹框可滚动且阻止页面滚动

vue项目里,如果一个列表页面弹框,弹框内容很长,也需要滚动,这个时候就不能在弹框的DOM上加@touchmove.prevent,否则弹框内也禁止滚动了

这个时候得用js来控制根节点的样式来实现弹框显示时禁止根节点页面滚动,弹框消失时恢复根节点页面滚动。

data: {
     showTip = false
},       
watch: {
        showTip(v){
            const dom = document.querySelector('.content-wrapper')
            //如果提示框显示,就把页面根节点设为不可滚动,弹框消失可以滚动
            if (v) {
                dom.style.height = '100vh' // 设备视口高度
                dom.style.overflow = 'hidden'
            } else {
                dom.style.height = 'unset'
                dom.style.overflow = 'unset'
            }
        }
    }

 

posted @ 2022-06-14 14:55  方小川  阅读(177)  评论(0编辑  收藏  举报