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


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下IE与Firefox下的差异兼容写法总结
Jun 18 Javascript
JS+CSS设置img在DIV中只显示Img垂直居中的部分
Oct 24 Javascript
jQuery实现checkbox全选的方法
Jun 10 Javascript
js实现表单Radio切换效果的方法
Aug 17 Javascript
js+css绘制颜色动态变化的圈中圈效果
Jan 27 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
Sep 19 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
Aug 24 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
Oct 30 Javascript
JavaScript创建防篡改对象的方法分析
Dec 30 Javascript
详解auto-vue-file:一个自动创建vue组件的包
Apr 26 Javascript
基于JQuery实现页面定时弹出广告
May 08 jQuery
Vue.js暴露方法给WebView的使用操作
Sep 07 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侧拉菜单 漂亮,可以向右或者向左展开,支持FF,IE
2009/10/15 PHP
PHP获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
PDO::beginTransaction讲解
2019/01/27 PHP
javascript instanceof,typeof的区别
2010/03/24 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
使用js修改客户端注册表的方法
2013/08/09 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
基于vue-ssr服务端渲染入门详解
2018/01/08 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
一起深入理解js中的事件对象
2021/02/06 Javascript
python文件比较示例分享
2014/01/10 Python
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
Python学生信息管理系统修改版
2018/03/13 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
python生成器用法实例详解
2019/11/22 Python
Python中base64与xml取值结合问题
2019/12/22 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
python模拟斗地主发牌
2020/04/22 Python
python中count函数知识点浅析
2020/12/17 Python
HTML5注册页面示例代码
2014/03/27 HTML / CSS
2014年五四青年节活动策划书
2014/04/22 职场文书
团支部建设方案
2014/05/02 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
青年文明号申报材料
2014/12/23 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
优秀志愿者感言
2015/08/01 职场文书
Python 多线程之threading 模块的使用
2021/04/14 Python