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


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 相关文章推荐
可在线编辑网页文字效果代码(单击)
Mar 02 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
Apr 26 Javascript
jQuery实现带滑动条的菜单效果代码
Aug 26 Javascript
jQuery的extend方法【三种】
Dec 14 Javascript
Vue.js展示AJAX数据简单示例讲解
Mar 29 Javascript
MUI 上拉刷新/下拉加载功能实例代码
Apr 13 Javascript
JS轮播图实现简单代码
Feb 19 Javascript
jquery+css实现下拉列表功能
Sep 03 jQuery
javascript将json格式数组下载为excel表格的方法
Dec 22 Javascript
Vue 实现列表动态添加和删除的两种方法小结
Sep 07 Javascript
vue 配置多页面应用的示例代码
Oct 22 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
Sep 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
将数字格式的计算结果转为汉字格式
2006/10/09 PHP
PHP脚本的10个技巧(7)
2006/10/09 PHP
php除数取整示例
2014/04/24 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
2017/03/28 PHP
javascript 单选框,多选框美化代码
2008/08/01 Javascript
很全的显示阴历(农历)日期的js代码
2009/01/01 Javascript
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
onkeydown事件解决按回车键直接提交数据的需求
2013/04/11 Javascript
鼠标焦点离开文本框时验证的js代码
2013/07/19 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
JavaScript不刷新实现浏览器的前进后退功能
2014/11/05 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
2015/04/05 Javascript
无刷新上传文件并返回自定义值
2015/06/11 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
JS使用正则表达式找出最长连续子串长度
2017/10/26 Javascript
微信小程序录音与播放录音功能
2017/12/25 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
Python中的pprint折腾记
2015/01/21 Python
Python中的各种装饰器详解
2015/04/11 Python
详解Python命令行解析工具Argparse
2016/04/20 Python
Python实现带百分比的进度条
2016/06/28 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
Python学生信息管理系统修改版
2018/03/13 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
聊聊python中的循环遍历
2020/09/07 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
高校自主招生自荐信
2013/12/09 职场文书
MySQL时区造成时差问题
2022/04/13 MySQL