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

 更新时间:2019年07月04日 11:43:09   作者:黑与空  
这篇文章主要介绍了微信小程序自定义弹窗实现详解(可通用),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

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

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

点击昵称旁边的编辑按钮

弹出自定义弹窗

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

下面上代码,老规矩,还是微信小程序对应的几个文件的代码,可直接贴到页面里用的哦。
.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
  });
 },

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

相关文章

  • 微信小程序虚拟列表的应用实例

    微信小程序虚拟列表的应用实例

    虚拟列表不是什么神秘的东西,下面这篇文章主要给大家介绍了关于微信小程序虚拟列表的应用实例,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • 基于javascript实现移动端轮播图效果

    基于javascript实现移动端轮播图效果

    这篇文章主要为大家详细介绍了基于javascript实现移动端轮播图效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • JS堆栈内存的运行机制详解

    JS堆栈内存的运行机制详解

    栈内存主要用于存储各种基本类型的变量,包括Boolean、Number、String、Undefined、Null,以及对象变量的指针(地址值),这篇文章主要介绍了JS堆栈内存的运行机制,需要的朋友可以参考下
    2022-06-06
  • js实现简单的省市县三级联动效果实例

    js实现简单的省市县三级联动效果实例

    这篇文章主要介绍了js实现简单的省市县三级联动效果,以完整实例形式分析了JavaScript实现省市县三级联动效果的具体步骤与相关实现技巧,需要的朋友可以参考下
    2016-02-02
  • 利用Promise自定义一个GET请求的函数示例代码

    利用Promise自定义一个GET请求的函数示例代码

    这篇文章主要给大家介绍了关于如何利用Promise自定义一个GET请求的函数的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Promise具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • javascript实现按回车键切换焦点

    javascript实现按回车键切换焦点

    这篇文章主要介绍了javascript实现按回车键切换焦点的方法,需要的朋友可以参考下
    2015-02-02
  • 浅谈JS之tagNaem和nodeName

    浅谈JS之tagNaem和nodeName

    下面小编就为大家带来一篇浅谈JS之tagNaem和nodeName。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • js中事件的处理与浏览器对象示例介绍

    js中事件的处理与浏览器对象示例介绍

    本文为大家详细介绍下js中关于简单事件的处理与浏览器对象,下面有个不错的示例,感兴趣的朋友可以参考下
    2013-11-11
  • js定时器怎么写?就是在特定时间执行某段程序

    js定时器怎么写?就是在特定时间执行某段程序

    定时器想必大家并不陌生吧,在本文为大家详细介绍下js中是如何实现定时器的,具体原理及代码如下,感兴趣的朋友不要错过
    2013-10-10
  • JavaScript实现简单的Markdown语法解析器

    JavaScript实现简单的Markdown语法解析器

    Markdown 是一种轻量级标记语言, 它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者HTML)文档。本文将利用JavaScript实现简单的Markdown语法解析器,感兴趣的可以了解一下
    2023-03-03

最新评论