当前位置: 首页 > news >正文

uniApp禁止遮罩弹窗下的页面滚动

文章目录

  • 问题
  • 解决
  • 代码


问题

最近用uniApp开发一款软件,页面是可以滚动的长列表,自定义组件弹窗遮罩出来后,滑动屏幕,页面也跟着滚动。研究了网上的解决办法
在遮罩层的最外层的view元素中加入
@touchmove.stop.prevent="moveHandle"

@catchtouchmove="moveHandle"
亲有效,但不太理想,会导致弹窗和底层页面都不能滚动,或者处理不当就报一些其他错误,还是不太简便


解决

其实问题的根源是浏览器的滚动穿透问题,目前还没有根本性办法解决,但可以在弹窗遮罩出来时给最外层容器设置高度来解决,亲测这个办法还是比较完美。
弹出遮罩时动态设置页面最外层容器style属性的height值为100vh。 这里最好使用单位vh100vh表示整个屏幕的高度,因为页面没有超出一屏,所以在弹窗上滑动时便不会触发底层的滚动事件,自然不会再有滚动穿透的问题。
此做法需要自定义列表滚动容器,也不是个很好的办法,表示无解


代码

<template><view class="container" :style="showMsk ? 'height: 100vh' : ''"><!-- 滚动列表 --><scroll-view scroll-y="true"></scroll-view><!-- 自定义弹窗 --><view v-if="showMsk" class="msk"></view><!-- 自定义弹窗 --><!-- <view v-if="showMsk" class="msk" @touchmove.stop.prevent="moveHandle"></view> --></view>
<template>

data() {return {showMsk: false,};
},
methods: {moveHandle: {return false;}
}
http://www.lryc.cn/news/103680.html

相关文章:

  • 【Huawei】WLAN实验(三层发现)
  • Windows 10 安装 PostgreSQL 12.x 报错 ‘psql‘ 不是内部或外部命令 由于找不到文件libintl-9.dll等问题
  • 在CSDN学Golang云原生(持续交付Argo)
  • 安全运维 -- splunk 集群配置归档
  • 使用kind在mac本地搭建k8s及istio
  • 11、springboot项目启动时对容器中的bean进行延迟初始化
  • 树莓派镜像安装 + 设置 + 镜像批量化操作 - 自动化烧写SD Card (三)
  • C++继承特性(4)——友元与静态
  • VR党建主题数字互动虚拟展馆软件开启党建铸魂育人新篇章
  • 单网卡实现 双IP 双网段(内外网)同时运行
  • C# 委托2
  • 【计算机网络】网络层协议 -- IP协议
  • 记录浙政钉的消息通知的一次开发实战记录
  • 详解主流的Hybrid App 技术框架与研发方案
  • 【软件测试】性能测试工具- LoadRunner的介绍和使用
  • react
  • AI入门:了解人工智能的基础知识
  • ACL原理
  • EP4CE6E22C8N Error: Can‘t recognize silicon ID for device 1
  • vue3-seamless-scroll无缝滚动
  • 适配器模式——不兼容结构的协调
  • 【NVIDIA CUDA】2023 CUDA夏令营编程模型(一)
  • SHELL——备份脚本
  • VS创建wsdl服务提供给java调用
  • 盘点 TypeScript 内置类型
  • Netty 执行了多次channelReadComplete()却没有执行ChannelRead()
  • 直线导轨的精密等级以及划分依据
  • Ubuntu Server版 之 apache系列 常用配置 以及 隐藏 版本号 IP、Port 搭建服务案例
  • Kubernetes(K8s)从入门到精通系列之七:K8s的基本概念和术语之安全类
  • 网络安全(黑客)自学误区