小程序弹窗禁止底部内容滚动
因公司业务需求:需要布局一个页面是底部一张图片position:fixed;z-index= -1固定在底部,然后上面一个html文件可上下拖动做到视觉差,手动写一个弹窗后底部内容还是可以滚动,因为弹窗里面的内容有textarea,textarea的placeholder会根据屏幕的滚动而滚动,这就贼吓人了,找了各种方法,给最外层套个view设置overflow:hidden,position:relative会导致页面滚动到顶部,确实不会滚动了。但是页面滚动到顶部这个效果就不太好了,用户滚动到底部了 然后一个弹窗弹起,又把页面滚动到顶部了,所以这种效果是不行的。
后来尝试在浏览器调试给page加上overflow:hidden发现可行,比如弹起的时候给page加上overflow:hidden,隐藏的时候去掉,
但是官方并没有给我们操作page的方法。
最后尝试了各种方法,找到了一个好东西
catchtouchmove="preventTouchMove"
<view class="quickApply" wx:if="{{isVisible}}">
<view class="shadow" catchtouchmove="preventTouchMove"></view> <-- 给你的弹窗加上这个东西,他会阻止页面滚动 -->
<view class="content">
<view class="head-info">
<view class="close" bindtap="handleCloses">
<image mode="widthFix" src="https://ojlf2aayk.qnssl.com/Combined%20Shape@2x.png"></image>
</view>
<text class="title">填写报名信息</text>
</view>
<view class="form">
<view class="viewul">
<view class="viewli">
<view class="text">联系电话</view>
<input type="tel" placeholder="请输入您的手机号" placeholder-class="phcolor" maxlength="11" bindinput="getPhonelg" cursor-spacing="40px"/>
</view>
<view class="viewli" >
<view class="text">验证码</view>
<input type="tel" placeholder="短信验证码" placeholder-class="phcolor" maxlength="6" bindinput="handleUserInfo" />
<view class="{{verifyDisabled ? 'disabled-btn' : 'btn'}}" bindtap="getverificode">{{btnText}}</view>
<view class="shortline"></view>
</view>
<view class="viewli" >
<view class="text">姓名</view>
<input type="text" placeholder="请填写您的姓名" placeholder-class="phcolor" value="{{name}}" bindinput="handleName"/>
</view>
<view class="viewli" >
<view class="text">留言</view>
<input type="text" placeholder="留言录取比例提高15%(选填)" placeholder-class="phcolor" maxlength="140" bindinput="handleCount" />
<view class="countNum">{{countNum}}/140</view>
</view>
</view>
</view>
<view class="apply {{isDisabled ? 'btn-disabled' : ''}}" bindtap="quickApply">极速报名</view>
</view>
</view>
preventTouchMove () {}
为什么是空方法?因为要结合界面wxml看,蒙层view里有一个事件绑定catchtouchmove="preventTouchMove"。这样写的原因是阻断事件向下传递,避免在弹窗后还可以点击或者滑动蒙层下的界面。如果不这样写的话,如果主界面是一个可以滚动的界面,想想看,当弹窗弹出的时候用户还可以操作滚动列表,我想你的产品经理会来找你的。
好了大家有什么问题欢迎邮件15723405987@163.com或者QQ8662054
青团社招聘:
招聘岗位:高级前端开发工程师P5及以上
简历投递到:hr@qtshe.com || haochen@qtshe.com
职位描述:
1、建设工具、提炼组件、抽象框架,促进前端工程化、服务化,持续提升研发效率,保障线上产品质量
2、构建H5/PC应用基础设施,主导建设前端各种发布/监控等平台,指导落实解决方案
3、持续优化前端页面性能,维护前端代码规范,钻研各种前沿技术和创新交互,增强用户体验、开拓前端能力边界
作者:一个被床封印的程序猿
链接:https://www.jianshu.com/p/9a1c91e1e435
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。