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


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 相关文章推荐
jscript之Read an Excel Spreadsheet
Jun 13 Javascript
js 无提示关闭浏览器页面的代码
Mar 09 Javascript
Jvascript学习实践案例(开发常用)
Jun 25 Javascript
javascript禁用Tab键脚本实例
Nov 22 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
Nov 22 Javascript
jquery select 设置默认选中的示例代码
Feb 07 Javascript
node.js中的buffer.toJSON方法使用说明
Dec 14 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
Sep 09 Javascript
vue打包使用Nginx代理解决跨域问题
Aug 27 Javascript
element ui table 增加筛选的方法示例
Nov 02 Javascript
JSON字符串操作移除空串更改key/value的介绍
Jan 05 Javascript
vue3.0 搭建项目总结(详细步骤)
May 20 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代码片段
2015/01/22 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
jquery无限级联下拉菜单简单实例演示
2015/11/23 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
浅谈Vue SSR 的 Cookies 问题
2017/11/20 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
python中使用PIL制作并验证图片验证码
2018/03/15 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
使用python获取(宜宾市地震信息)地震信息
2019/06/20 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
美国最大的城市服装和运动鞋零售商:Jimmy Jazz
2016/11/19 全球购物
新书吧创业计划书
2014/01/31 职场文书
路政管理毕业自荐书范文
2014/02/10 职场文书
教师通用专业自荐书范文
2014/02/11 职场文书
知识竞赛活动方案
2014/02/18 职场文书
《中彩那天》教学反思
2014/02/22 职场文书
职业生涯规划书前言
2014/04/15 职场文书
专升本学生毕业自我鉴定
2014/10/04 职场文书
后进生评语大全
2015/01/04 职场文书
七年级地理教学计划
2015/01/22 职场文书