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


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 相关文章推荐
jquery tools之tabs 选项卡/页签
Jul 25 Javascript
jquery select选中的一个小问题
Oct 11 Javascript
JavaScript学习笔记之定时器
Jan 22 Javascript
jQuery自动添加表单项的方法
Jul 13 Javascript
深入理解jQuery之防止冒泡事件
May 24 Javascript
Node.js简单入门前传
Aug 21 Javascript
利用10行js代码实现上下滚动公告效果
Dec 08 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
Dec 28 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
Mar 05 Javascript
Vue 幸运大转盘实现思路详解
May 06 Javascript
node.js使用yargs处理命令行参数操作示例
Feb 11 Javascript
js实现飞机大战游戏
Aug 26 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
php目录管理函数小结
2008/09/10 PHP
php快递单号查询接口使用示例
2014/05/05 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
php面向对象重点知识分享
2019/09/27 PHP
javascript jQuery插件练习
2008/12/24 Javascript
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
JavaScript类库D
2010/10/24 Javascript
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
2013/11/28 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
[01:42]DOTA2 – 虚无之灵
2019/08/25 DOTA
Python自定义函数定义,参数,调用代码解析
2017/12/27 Python
通过实例了解python property属性
2019/11/01 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
Python实现图片识别加翻译功能
2019/12/26 Python
keras中的History对象用法
2020/06/19 Python
利用CSS3实现的文字定时向上滚动
2016/08/29 HTML / CSS
毕业生自我鉴定
2013/12/04 职场文书
护理不良事件检讨书
2014/02/06 职场文书
优秀管理者获奖感言
2014/02/17 职场文书
学困生帮扶工作总结
2015/08/13 职场文书
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python