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


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 相关文章推荐
善用事件代理,警惕闭包的性能陷阱。
Jan 20 Javascript
Jquery显示、隐藏元素以及添加删除样式
Aug 09 Javascript
JavaScript中检查对象property的存在性方法介绍
Dec 30 Javascript
Jquery中基本选择器用法实例详解
May 18 Javascript
JavaScript中0和&quot;&quot;比较引发的问题
May 26 Javascript
Seajs是什么及sea.js 由来,特点以及优势
Oct 13 Javascript
Angular.js实现动态加载组件详解
May 28 Javascript
JavaScript常用数学函数用法示例
May 14 Javascript
JavaScript常用工具函数大全
May 06 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
Aug 09 Javascript
JS typeof fn === 'function' &amp;&amp; fn()详解
Aug 22 Javascript
JS前端基于canvas给图片添加水印
Nov 11 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
10条PHP编程习惯助你找工作
2008/09/29 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
javascript关于继承的用法汇总
2014/12/20 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
2016/05/12 Javascript
谈谈JavaScript中的几种借用方法
2016/08/09 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
折叠菜单及选择器的运用
2017/02/03 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
[19:15]DK战队纪录片
2014/09/02 DOTA
Python运算符重载用法实例
2015/05/28 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
2020/06/11 Python
记录一下scrapy中settings的一些配置小结
2020/09/28 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
什么是组件架构
2016/05/15 面试题
劳动模范事迹材料
2014/01/19 职场文书
《忆江南》教学反思
2014/04/07 职场文书
运动会加油口号
2014/06/07 职场文书
老干部工作先进事迹
2014/08/17 职场文书
小学教育见习总结
2015/06/23 职场文书
禁毒主题班会教案
2015/08/14 职场文书
导游词之天津盘山
2019/11/01 职场文书
zabbix监控mysql的实例方法
2021/06/02 MySQL
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android