微信小程序自定义弹窗实现详解(可通用)


Posted in Javascript onJuly 04, 2019

本文为自定义弹窗,该内容可满足如下需求:

  • 自定义各种布局弹窗
  • 点击弹窗布局外消失弹窗
  • 弹出弹窗时背景阴影半透明
  • 各方向弹出效果(本文为自下而上弹出)

话不多说,先上图看效果:

微信小程序自定义弹窗实现详解(可通用)

点击昵称旁边的编辑按钮

微信小程序自定义弹窗实现详解(可通用)

弹出自定义弹窗

上图是我自己拙劣的审美自定义的一个编辑弹窗,因为重点是自定义弹窗,所以在下文的通用代码中我就去掉了这些布局,剩下填充部分由读者自行填充。

下面上代码,老规矩,还是微信小程序对应的几个文件的代码,可直接贴到页面里用的哦。
.wxml 文件中 直接放到wxml的最底部就行了,十分简练。

<view class="zan-dialog {{ showDialog ? 'zan-dialog--show' : '' }}">
 <view class="zan-dialog__mask" bindtap="toggleDialog" />
 <view class="zan-dialog__container">
  <view style='padding:100rpx;'>此处是填充的布局代码</view>
 </view>
</view>

.wxss 文件中 直接放进去就行,根据注释可自行调节弹框带不带阴影。

.zan-dialog__mask {
 position: fixed;
 top: 0;
 left: 0;
 right: 0;
 bottom: 0;
 z-index: 10;
 background: rgba(0, 0, 0, 0);//设置阴影半透明背景如: background: rgba(0, 0, 0, 0.4);
 display: none;
}

.zan-dialog__container {
 position: fixed;
 bottom: 400rpx;
 width: 650rpx;//弹窗布局宽
 height: 350rpx;//弹窗布局高,与下面弹出距离transform有关
 margin-left: 50rpx;
 background: #f8f8f8;
 transform: translateY(300%);//弹框弹出距离,与弹框布局高度有关,如300%表示弹起距离为3倍弹窗高度
 transition: all 0.4s ease;
 z-index: 12;
 border-radius: 20rpx;
 box-shadow: 0px 3px 3px 2px gainsboro;//弹框的悬浮阴影效果,如不需要可注释该行
}

.zan-dialog--show .zan-dialog__container {
 transform: translateY(0);
}

.zan-dialog--show .zan-dialog__mask {
 display: block;
}

.js 文件中 处理弹框弹出消失逻辑,以及自定义弹窗里的业务逻辑。

Page({
 data: {
  showDialog: false
 },

 /**
 * 控制 pop 的打开关闭
 * 该方法作用有2:
 * 1:点击弹窗以外的位置可消失弹窗
 * 2:用到弹出或者关闭弹窗的业务逻辑时都可调用
 */
 toggleDialog() {
  this.setData({
   showDialog: !this.data.showDialog
  });
 },

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JavaScript页面不刷新时全选择,全删除(GridView)
Apr 14 Javascript
JS测试显示屏分辨率以及屏幕尺寸的方法
Nov 22 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
Mar 22 Javascript
Bootstrap每天必学之简单入门
Nov 19 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
May 30 Javascript
Bootstrap实现登录校验表单(带验证码)
Jun 23 Javascript
jQuery插件HighCharts绘制的基本折线图效果示例【附demo源码下载】
Mar 07 Javascript
vue实现单选和多选功能
Aug 11 Javascript
用Object.prototype.toString.call(obj)检测对象类型原因分析
Oct 11 Javascript
JS实现省市县三级下拉联动
Apr 10 Javascript
vue-router的hooks用法详解
Jun 08 Javascript
Vue深入理解插槽slot的使用
Aug 05 Vue.js
Vue 3.x+axios跨域方案的踩坑指南
Jul 04 #Javascript
Vue.js递归组件实现组织架构树和选人功能
Jul 04 #Javascript
vue-cli配置flexible过程详解
Jul 04 #Javascript
vue动态配置模板 'component is'代码
Jul 04 #Javascript
react 移动端实现列表左滑删除的示例代码
Jul 04 #Javascript
jQuery删除/清空指定元素的所有子节点实例代码
Jul 04 #jQuery
小程序中canvas的drawImage方法参数使用详解
Jul 04 #Javascript
You might like
利用PHP和AJAX创建RSS聚合器的代码
2007/03/13 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
2015/08/01 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
js实现ASP分页函数 HTML分页函数
2006/09/22 Javascript
javascript concat数组累加 示例
2009/09/03 Javascript
Extjs学习笔记之七 布局
2010/01/08 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
微信小程序 Template详解及简单实例
2017/01/05 Javascript
深入理解Javascript箭头函数中的this
2017/02/13 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
Python实现的二维码生成小软件
2014/07/11 Python
python之yield表达式学习
2014/09/02 Python
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
Python3.5装饰器典型案例分析
2019/04/30 Python
Python箱型图处理离群点的例子
2019/12/09 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
德国苹果商店:MacTrade
2020/05/18 全球购物
九年级数学教学反思
2014/02/02 职场文书
服务标语大全
2014/06/18 职场文书
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
圆明园观后感
2015/06/03 职场文书
重阳节简报
2015/07/20 职场文书
python实现简单的名片管理系统
2021/04/26 Python
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript