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


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 相关文章推荐
javascript中获取选中对象的类型
Apr 02 Javascript
Firefox div高度自适应
Apr 28 Javascript
JavaScript DOM 学习第三章 内容表格
Feb 19 Javascript
jQuery让控件左右移动的三种实现方法
Sep 08 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
Aug 13 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
Apr 17 Javascript
解析jQueryEasyUI的使用
Nov 22 Javascript
jsonp跨域请求实现示例
Mar 13 Javascript
利用Vue.js实现求职在线之职位查询功能
Jul 03 Javascript
浅谈Node模块系统及其模式
Nov 17 Javascript
easyUI 实现的后台分页与前台显示功能示例
Jun 01 Javascript
JavaScript实现淘宝商品图切换效果
Apr 29 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
PHP远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
总结对比php中的多种序列化
2016/08/28 PHP
详解Yii2高级版引入bootstrap.js的一个办法
2017/03/21 PHP
彪哥1.1(智能表格)提供下载
2006/09/07 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
移动端 一个简单易懂的弹出框
2016/07/06 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
js 颜色选择插件
2017/01/23 Javascript
浅谈angular.copy() 深拷贝
2017/09/14 Javascript
vue的diff算法知识点总结
2018/03/29 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
横向对比分析Python解析XML的四种方式
2016/03/30 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
Uber Eats台湾:寻找附近提供送餐服务的餐厅
2018/05/07 全球购物
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
成人教育自我鉴定
2013/11/01 职场文书
植树节活动总结
2014/04/30 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
公务员考察材料
2014/12/23 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
2016年情人节广告语
2016/01/28 职场文书
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL