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


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的图片幻灯展示源码
Jul 15 Javascript
javascript运行机制之this详细介绍
Feb 07 Javascript
浅谈 javascript 事件处理
Jan 04 Javascript
jquery实现滑动特效代码
Aug 10 Javascript
jQuery实现摸拟alert提示框
May 22 Javascript
React Native实现简单的登录功能(推荐)
Sep 19 Javascript
JS中的phototype详解
Feb 04 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
Jul 18 jQuery
详解在vue-cli项目中使用mockjs(请求数据删除数据)
Oct 23 Javascript
JS实现网页抢购功能(触发,终止脚本)
Nov 27 Javascript
Echarts之悬浮框中的数据排序问题
Nov 08 Javascript
Vue项目开发常见问题和解决方案总结
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
PHP Global定义全局变量使用说明
2013/08/15 PHP
PHP实现一个轻量级容器的方法
2019/01/28 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
2013/12/05 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
Javascript中arguments和arguments.callee的区别浅析
2015/04/24 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
深入理解JS正则表达式---分组
2016/07/18 Javascript
高效Web开发的10个jQuery代码片段
2016/07/22 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
jQuery控制控件文本的长度的操作方法
2016/12/05 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
Python函数中定义参数的四种方式
2014/11/30 Python
python获取当前日期和时间的方法
2015/04/30 Python
Python制作豆瓣图片的爬虫
2017/12/28 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
2018/02/23 Python
python 批量修改/替换数据的实例
2018/07/25 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
python 如何实现遗传算法
2020/09/22 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
2020/10/18 Python
茶叶店创业计划书范文
2014/01/19 职场文书
西式婚礼主持词
2014/03/13 职场文书
厂区绿化方案
2014/05/08 职场文书
工作求职自荐信
2014/06/13 职场文书
员工生日活动方案
2014/08/24 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
募捐感谢信
2015/01/22 职场文书
小浪底导游词
2015/02/12 职场文书