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


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 相关文章推荐
IE6/7/8中Option元素未设value时Select将获取空字符串
Apr 07 Javascript
JavaScript常用的弹出广告及背投广告实现方法
Feb 06 Javascript
学习JavaScript设计模式之享元模式
Jan 18 Javascript
Bootstrap学习笔记之css组件(3)
Jun 07 Javascript
Bootstrap中表单控件状态(验证状态)
Aug 04 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
Sep 01 Javascript
IE8中jQuery.load()加载页面不显示的原因
Nov 15 jQuery
JS添加或删除HTML dom元素的方法实例分析
Mar 05 Javascript
JS实现页面跳转与刷新的方法汇总
Aug 30 Javascript
100行代码实现vue表单校验功能(小白自编)
Nov 19 Javascript
继承行为在 ES5 与 ES6 中的区别详解
Dec 24 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
Sep 21 Javascript
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
我的论坛源代码(九)
2006/10/09 PHP
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
Javascript的闭包
2009/12/31 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
js有序数组的连接问题
2013/10/01 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
2019/06/17 Javascript
vue实现计算器功能
2020/02/22 Javascript
为react组件库添加typescript类型提示的方法
2020/06/15 Javascript
小程序实现录音功能
2020/09/22 Javascript
Python中无限元素列表的实现方法
2014/08/18 Python
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
浅析使用Python搭建http服务器
2019/10/27 Python
python怎么判断素数
2020/07/01 Python
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
大学生新闻专业个人自我评价
2013/11/12 职场文书
国税会议欢迎词
2014/01/16 职场文书
酒店值班经理的工作职责范本
2014/02/18 职场文书
安全教育感言
2014/03/04 职场文书
法人代表授权委托书
2014/04/08 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
2014财务年终工作总结
2014/12/08 职场文书
淘宝文案策划岗位职责
2015/04/14 职场文书
图文详解Nginx版本平滑升级方案
2021/09/15 Servers