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


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 相关文章推荐
Jquery 实现Tab效果 思路是js思路
Mar 02 Javascript
jquery查找tr td 示例模拟
May 08 Javascript
JavaScript的null和undefined区别示例介绍
Sep 15 Javascript
JavaScript中的函数声明和函数表达式区别浅析
Mar 27 Javascript
js获取form的方法
May 06 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
Nov 26 Javascript
JavaScript保留关键字汇总
Dec 01 Javascript
字太多用...代替的方法(两种)
Mar 15 Javascript
JS获取动态添加元素的方法详解
Jul 31 Javascript
微信小程序事件 bindtap bindinput代码实例
Aug 26 Javascript
JavaScript实现串行请求的示例代码
Sep 14 Javascript
js删除指定位置超链接中含有百度与360的标题
Jan 06 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
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
怎样在UNIX系统下安装php3
2006/10/09 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
thinkphp3.0输出重复两次的解决方法
2014/12/19 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
Bootstrap Table的使用总结
2016/10/08 Javascript
折叠菜单及选择器的运用
2017/02/03 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
jquery实现简单实用的轮播器
2017/05/23 jQuery
JavaScript异步上传图片文件的实例代码
2017/07/04 Javascript
webpack3之loader全解析
2017/10/26 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
Vue封装Axios请求和拦截器的步骤
2020/09/16 Javascript
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python生成pdf文件的方法
2014/08/04 Python
python实现查询苹果手机维修进度
2015/03/16 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
对python sklearn one-hot编码详解
2018/07/10 Python
python读取与处理netcdf数据方式
2020/02/14 Python
python实现滑雪游戏
2020/02/22 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
python在linux环境下安装skimage的示例代码
2020/10/14 Python
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
学生评语大全
2014/04/18 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
2014教师年度工作总结
2014/11/10 职场文书