微信小程序自定义支持图片的弹窗


Posted in Javascript onDecember 21, 2020

本文实例为大家分享了微信小程序自定义支持图片的弹窗,供大家参考,具体内容如下

为index.wxml添加如下图代码: (微信小程序 - canvas层级最高问题,如何超越canvas的层级,只能使用cover-view标签)

<!--index.wxml-->

<button class="show-btn" bindtap="showDialogBtn">弹窗</button>

<!--弹窗-->

<cover-view class="modal-mask" bindtap="hideModal" wx:if="{{modal.isShow}}"></cover-view>
<cover-view class="modal-dialog" wx:if="{{modal.isShow}}" >
 <cover-view class="modal-title">{{modal.title}}</cover-view>
 <cover-view class="modal-content">
 <cover-image src="{{modal.src}}" class="img-full" style="height:auto;" mode="widthFix"></cover-image>
 </cover-view>
 <cover-view class="modal-footer" wx-if="{{modal.isFooter}}">
 <cover-view class="btn-cancel" bindtap="onCancel" data-status="cancel">{{modal.cancel}}</cover-view>
 <cover-viewew class="btn-confirm" bindtap="onConfirm" data-status="confirm">{{modal.ok}}</cover-viewew>
 </cover-view>
</cover-view>

修改样式文件index.wxss,样式代码如下图所示:

/index.wxss/

.show-btn {
 margin-top: 100rpx;
 color: #22cc22;
}
.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: 50%;
 left: 0;
 z-index: 9999;
 background: #f9f9f9;
 margin: -180rpx 105rpx;
 border-radius: 36rpx;
}
.modal-title {
 padding-top: 50rpx;
 font-size: 36rpx;
 color: #030303;
 text-align: center;
}
.modal-content {
 padding: 50rpx 32rpx;
}
.modal-input {
 display: flex;
 background: #fff;
 border: 2rpx solid #ddd;
 border-radius: 4rpx;
 font-size: 28rpx;
}
.input {
 width: 100%;
 height: 82rpx;
 font-size: 28rpx;
 line-height: 28rpx;
 padding: 0 20rpx;
 box-sizing: border-box;
 color: #333;
}
input-holder {
 color: #666;
 font-size: 28rpx;
}
.modal-footer {
 display: flex;
 flex-direction: row;
 height: 86rpx;
 border-top: 1px solid #dedede;
 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;
}

index.js代码如下图所示:

//index.js
//获取应用实例
var app = getApp()
Page({
 data: {
 showModal: false,
 },
 onLoad: function () {
 },
 /**
 * 弹窗
 */

 showDialogBtn: function () {
 this.setData({
 showModal: true

 })

 },

 /**
 * 弹出框蒙层截断touchmove事件
 */

 preventTouchMove: function () {
 },

 /**
 * 隐藏模态对话框
 */

 hideModal: function () {
 this.setData({
 showModal: false
 });

 },

 /**
 * 对话框取消按钮点击事件
 */

 onCancel: function () {
 this.hideModal();
 },

 /**
 * 对话框确认按钮点击事件
 */

 onConfirm: function () {
 this.hideModal();

 }

})

运行,可以看到修改样式后的效果

这里有个要特别注意的地方,就是下面这个方法:

preventTouchMove: function () { }

为什么是空方法?因为要结合界面wxml看,蒙层view里有一个事件绑定

catchtouchmove="preventTouchMove"。

这养写的原因是阻断事件向下传递,避免在弹窗后还可以点击或者滑动蒙层下的界面。

如果不这样写的话,如果主界面是一个可以滚动的界面,想想看,当弹窗弹出的时候用户还可以操作滚动列表。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript面向对象编程
Mar 02 Javascript
javascript 多种搜索引擎集成的页面实现代码
Jan 02 Javascript
捕获和分析JavaScript Error的方法
Mar 25 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
Apr 30 Javascript
jQuery实现表格颜色交替显示的方法
Mar 09 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
Dec 01 Javascript
JavaScript数组实现数据结构中的队列与堆栈
May 26 Javascript
全面解析Bootstrap中form、navbar的使用方法
May 30 Javascript
JQuery EasyUI的一些常用组件
Jul 12 jQuery
vue实现动态显示与隐藏底部导航的方法分析
Feb 11 Javascript
Vue路由对象属性 .meta $route.matched详解
Nov 04 Javascript
vue-resource post数据时碰到Django csrf问题的解决
Mar 13 Javascript
Jquery+javascript实现支付网页数字键盘
Dec 21 #jQuery
微信小程序实现modal弹出框遮罩层组件(可带文本框)
Dec 20 #Javascript
微信小程序自定义modal弹窗组件的方法详解
Dec 20 #Javascript
微信小程序学习之自定义滚动弹窗
Dec 20 #Javascript
JavaScript中arguments的使用方法详解
Dec 20 #Javascript
vue 在单页面应用里使用二级套嵌路由
Dec 19 #Vue.js
vue中如何添加百度统计代码
Dec 19 #Vue.js
You might like
php 静态化实现代码
2009/03/20 PHP
PHP STRING 陷阱原理说明
2010/07/24 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
基于php使用memcache存储session的详解
2013/06/25 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
2015/12/07 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
JavaScript使用技巧精萃[代码非常实用]
2008/11/21 Javascript
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
JavaScript实现的图像模糊算法代码分享
2014/04/22 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
jquery.zclip轻量级复制失效问题
2017/01/08 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
[03:46]DAC趣味视频-中文考试.mp4
2017/04/02 DOTA
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
Python实现动态循环输出文字功能
2020/05/07 Python
Python confluent kafka客户端配置kerberos认证流程详解
2020/10/12 Python
python list的index()和find()的实现
2020/11/16 Python
Java如何格式化日期
2012/08/07 面试题
厂办主管岗位职责范本
2014/02/28 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
小学生交通安全寄语
2015/02/27 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书