微信小程序自定义弹出模态框禁止底部滚动功能


Posted in Javascript onMarch 09, 2020

图示:

微信小程序自定义弹出模态框禁止底部滚动功能

wxml代码:

<view class='fix_bottom'>
<view>分享</view>
<view>电话咨询</view>
<view class='active' bindtap="showDialogBtn">立即报名</view>
</view>

<!--模态框-->
<!-- 遮罩层 -->
<view class="modal-mask" bindtap="hideModal" catchtouchmove="preventTouchMove" wx:if="{{showModal}}"></view>

<view class="modal-dialog" wx:if="{{showModal}}">
<view class="modal-title">选择班次</view>
<view class="modal-content">
<view class="concent_list {{curindex==index? 'active':''}}" wx:for="{{concent_list}}" wx:for-index='index' data-index='{{index}}' bindtap='choose' data-name='{{item}}'>{{item}}</view>
</view>

<view class="modal-footer">
<view class="btn-cancel" bindtap="onCancel" data-status="cancel">取消</view>
<view class="btn-confirm" bindtap="onConfirm" data-status="confirm">确定</view>
</view>
</view>

wxss代码

.fix_bottom{
width: 100%;
height: 120rpx;
background: #fff;
position: fixed;
bottom: 0;
border-top: 1px solid #ccc;
display: flex;
}

.fix_bottom view{
width: 33.333%;
border-left: 1px solid #ccc;
line-height: 120rpx;
text-align: center;
font-size: 40rpx;
font-weight: bold;
}

.active{
color:#ffffff;
background: -moz-linear-gradient(left, #ff7b68, #ff5462);
 /* Safari 4-5, Chrome 1-9 */
 /* -webkit-gradient(, [, ]?, [, ]? [, ]*) */
 background: -webkit-gradient(linear,left,from(#ff7b68),to(#ff5462));
 /* Safari 5.1+, Chrome 10+ */
 background: -webkit-linear-gradient(left, #ff7b68, #ff5462);
 /* Opera 11.10+ */
 background: -o-linear-gradient(left, #ff7b68, #ff5462);
}

/* 模态框 */

.modal-mask {
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
background: #000;
opacity: 0.5;
overflow: hidden;
z-index: 9000;
color: #fff;
}

.modal-dialog {
width: 540rpx;
overflow: hidden;
position: fixed;
top: 40%;
left: 0;
z-index: 9999;
background: #f9f9f9;
margin: -180rpx 105rpx;
border-radius: 36rpx;
}

.modal-title {
height: 100rpx;
line-height: 100rpx;
font-size: 36rpx;
color: #fff;
text-align: center;
background: -moz-linear-gradient(left, #ff7b68, #ff5462);
 /* Safari 4-5, Chrome 1-9 */
 /* -webkit-gradient(, [, ]?, [, ]? [, ]*) */
 background: -webkit-gradient(linear,left,from(#ff7b68),to(#ff5462));
 /* Safari 5.1+, Chrome 10+ */
 background: -webkit-linear-gradient(left, #ff7b68, #ff5462);
 /* Opera 11.10+ */
 background: -o-linear-gradient(left, #ff7b68, #ff5462);
border-bottom: 1px solid #ccc;

}

.modal-content {

}

.concent_list{
width: 100%;
height: 100rpx;
border-bottom: 1px solid #ccc;
line-height: 100rpx;
text-align: center;
}

.modal-footer {
display: flex;
flex-direction: row;
height: 86rpx;
font-size: 34rpx;
line-height: 86rpx;
}

.btn-cancel {
width: 50%;
color: #666;
text-align: center;
border-right: 1px solid #dedede;
}

.btn-confirm {
width: 50%;
color: #ec5300;
text-align: center;
}

js代码

var value='小学升初中'
Page({

/**
* 页面的初始数据
*/
data: {
showModal: false,
concent_list:['小学升初中','初一升初二','初二升初三','初中升高中'],
curindex:-1
},

/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {

},

/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},

/**
* 弹窗
*/
showDialogBtn: function () {
this.setData({
showModal: true
})
},

/**
* 隐藏模态对话框
*/
hideModal: function () {
this.setData({
showModal: false
});
},

/**
* 对话框取消按钮点击事件
*/
onCancel: function () {
this.hideModal();
},
/**
* 对话框确认按钮点击事件
*/
onConfirm: function () {
this.hideModal();

})
},

choose:function(e){
var index=e.currentTarget.dataset.index
value = e.currentTarget.dataset.name
console.log(value)
this.setData({
curindex:index
})
}

})

模态框显示时禁止底部内容滚动可以在弹出时给底部包裹部分加上固定定位,模态框隐藏时取消固定定位

内容包裹的元素需要设置100%的宽度

<view class='diceng_wrap' style='position: {{position}}'>
底部所有内容内容内容
</view>

data数据的变化:

初始化时:

 position: 'auto',

模态框显示时:

position: 'fixed',

模态框隐藏时:

position: 'auto',

模态框显示时

总结

到此这篇关于微信小程序自定义弹出模态框禁止底部滚动功能的文章就介绍到这了,更多相关微信小程序弹出模态框内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
OfflineSave离线保存代码再次发布使用说明
May 23 Javascript
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
Aug 05 Javascript
js验证是否为数字的总结
Apr 14 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
Oct 10 Javascript
js实现表单及时验证功能 用户信息立即验证
Sep 13 Javascript
利用bootstrapValidator验证UEditor
Sep 14 Javascript
jQuery获取table下某一行某一列的值实现代码
Apr 07 jQuery
浅谈Vue响应式(数组变异方法)
May 07 Javascript
JavaScript实现shuffle数组洗牌操作示例
Jan 03 Javascript
原生js实现3D轮播图
Mar 21 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
Dec 06 Javascript
Vue切换Tab动态渲染组件的操作
Sep 21 Javascript
JavaScript享元模式原理与用法实例详解
Mar 09 #Javascript
JavaScript装饰者模式原理与用法实例详解
Mar 09 #Javascript
JavaScript适配器模式原理与用法实例详解
Mar 09 #Javascript
JavaScript中的this基本问题实例小结
Mar 09 #Javascript
Nuxt页面级缓存的实现
Mar 09 #Javascript
JavaScript设计模式之门面模式原理与实现方法分析
Mar 09 #Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
Mar 09 #Javascript
You might like
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
EasyUI中的tree用法介绍
2011/11/01 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
2014/12/16 Javascript
javascript获取文档坐标和视口坐标
2015/05/26 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
EasyUI折叠表格层次显示detailview详解及实例
2016/12/28 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
简单实现jQuery手风琴效果
2017/08/18 jQuery
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
JavaScript引用类型Date常见用法实例分析
2018/08/08 Javascript
vue cli 3.0 搭建项目的图文教程
2019/05/17 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
bootstrap Table实现合并相同行
2019/07/19 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
python中关于for循环的碎碎念
2017/06/30 Python
Pandas分组与排序的实现
2019/07/23 Python
Django后端分离 使用element-ui文件上传方式
2020/07/12 Python
Molly Bracken法国电子商店:法国女性时尚品牌
2019/07/24 全球购物
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2013/05/03 面试题
商场促销活动总结
2014/07/10 职场文书
2015年教师节慰问信
2015/03/23 职场文书
感恩父母主题班会
2015/08/12 职场文书
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle
Nginx设置HTTPS的方法步骤 443证书配置方法
2022/03/21 Servers