返回顶部
首页 > 资讯 > 前端开发 > html >微信小程序如何自定义模态弹窗
  • 264
分享到

微信小程序如何自定义模态弹窗

2024-04-02 19:04:59 264人浏览 八月长安
摘要

这篇文章将为大家详细讲解有关微信小程序如何自定义模态弹窗,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下api如下:示例:这样的模态弹窗,充其量只能做个aler

这篇文章将为大家详细讲解有关微信小程序如何自定义模态弹窗,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

具体内容如下

微信小程序如何自定义模态弹窗

api如下:

微信小程序如何自定义模态弹窗

示例:

微信小程序如何自定义模态弹窗

这样的模态弹窗,充其量只能做个alert,提示一下信息。
但是并不能使用它来处理复杂性的弹窗业务,因此写了Michael从新自定义了一个,采用了仿原生的样式写法

wxml:

<!--button--> 
<view class="btn" bindtap="powerDrawer" data-statu="open">button</view> 
 
<!--mask--> 
<view class="drawer_screen" bindtap="powerDrawer" data-statu="close" wx:if="{{showModalStatus}}"></view> 
<!--content--> 
<!--使用animation属性指定需要执行的动画--> 
<view animation="{{animationData}}" class="drawer_box" wx:if="{{showModalStatus}}"> 
 
 <!--drawer content--> 
 <view class="drawer_title">弹窗标题</view> 
 <view class="drawer_content"> 
 <view class="top grid"> 
 <label class="title col-0">标题</label> 
 <input class="input_base input_h40 col-1" name="rName" value="可自行定义内容"></input> 
 </view> 
 <view class="top grid"> 
 <label class="title col-0">标题</label> 
 <input class="input_base input_h40 col-1" name="mobile" value="110"></input> 
 </view> 
 <view class="top grid"> 
 <label class="title col-0">标题</label> 
 <input class="input_base input_h40 col-1" name="phone" value="拒绝伸手党"></input> 
 </view> 
 <view class="top grid"> 
 <label class="title col-0">标题</label> 
 <input class="input_base input_h40 col-1" name="Email" value="仅供学习使用"></input> 
 </view> 
 <view class="top bottom grid"> 
 <label class="title col-0">备注</label> 
 <input class="input_base input_h40 col-1" name="bz"></input> 
 </view> 
 </view> 
 <view class="btn_ok" bindtap="powerDrawer" data-statu="close">确定</view> 
</view>

wxss:

 
.btn { 
 width: 80%; 
 padding: 20rpx 0; 
 border-radius: 10rpx; 
 text-align: center; 
 margin: 40rpx 10%; 
 background: #000; 
 color: #fff; 
} 
 
 
.drawer_screen { 
 width: 100%; 
 height: 100%; 
 position: fixed; 
 top: 0; 
 left: 0; 
 z-index: 1000; 
 background: #000; 
 opacity: 0.5; 
 overflow: hidden; 
} 
 
 
.drawer_box { 
 width: 650rpx; 
 overflow: hidden; 
 position: fixed; 
 top: 50%; 
 left: 0; 
 z-index: 1001; 
 background: #FAFAFA; 
 margin: -150px 50rpx 0 50rpx; 
 border-radius: 3px; 
} 
 
.drawer_title{ 
 padding:15px; 
 font: 20px "microsoft yahei"; 
 text-align: center; 
} 
.drawer_content { 
 height: 210px; 
 overflow-y: scroll;  
} 
 
.btn_ok{ 
 padding: 10px; 
 font: 20px "microsoft yahei"; 
 text-align: center; 
 border-top: 1px solid #E8E8EA; 
 color: #3CC51F; 
} 
 
.top{ 
 padding-top:8px; 
} 
.bottom { 
 padding-bottom:8px; 
} 
.title { 
 height: 30px; 
 line-height: 30px; 
 width: 160rpx; 
 text-align: center; 
 display: inline-block; 
 font: 300 28rpx/30px "microsoft yahei"; 
} 
 
.input_base { 
 border: 2rpx solid #ccc; 
 padding-left: 10rpx; 
 margin-right: 50rpx; 
} 
.input_h40{ 
 height: 30px; 
 line-height: 30px; 
} 
.input_h70{ 
 height: 60px; 
} 
.input_view{ 
 font: 12px "microsoft yahei"; 
 background: #fff; 
 color:#000; 
 line-height: 30px; 
} 
 
input { 
 font: 12px "microsoft yahei"; 
 background: #fff; 
 color:#000 ; 
} 
radio{ 
 margin-right: 20px; 
} 
.grid { display: -WEBkit-box; display: box; } 
.col-0 {-webkit-box-flex:0;box-flex:0;} 
.col-1 {-webkit-box-flex:1;box-flex:1;} 
.fl { float: left;} 
.fr { float: right;}

js

Page({ 
 data: { 
 showModalStatus: false 
 }, 
 powerDrawer: function (e) { 
 var currentStatu = e.currentTarget.dataset.statu; 
 this.util(currentStatu) 
 }, 
 util: function(currentStatu){ 
  
 // 第1步:创建动画实例 
 var animation = wx.createAnimation({ 
 duration: 200, //动画时长 
 timingFunction: "linear", //线性 
 delay: 0 //0则不延迟 
 }); 
 
 // 第2步:这个动画实例赋给当前的动画实例 
 this.animation = animation; 
 
 // 第3步:执行第一组动画 
 animation.opacity(0).rotateX(-100).step(); 
 
 // 第4步:导出动画对象赋给数据对象储存 
 this.setData({ 
 animationData: animation.export() 
 }) 
 
 // 第5步:设置定时器到指定时候后,执行第二组动画 
 setTimeout(function () { 
 // 执行第二组动画 
 animation.opacity(1).rotateX(0).step(); 
 // 给数据对象储存的第一组动画,更替为执行完第二组动画的动画对象 
 this.setData({ 
 animationData: animation 
 }) 
 
 //关闭 
 if (currentStatu == "close") { 
 this.setData( 
 { 
 showModalStatus: false 
 } 
 ); 
 } 
 }.bind(this), 200) 
 
 // 显示 
 if (currentStatu == "open") { 
 this.setData( 
 { 
 showModalStatus: true 
 } 
 ); 
 } 
 } 
 
})

运行:

微信小程序如何自定义模态弹窗

关于“微信小程序如何自定义模态弹窗”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: 微信小程序如何自定义模态弹窗

本文链接: https://lsjlt.com/news/70350.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 微信小程序如何自定义模态弹窗
    这篇文章将为大家详细讲解有关微信小程序如何自定义模态弹窗,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下api如下:示例:这样的模态弹窗,充其量只能做个aler...
    99+
    2024-04-02
  • 微信小程序如何实现自定义模态弹窗组件
    这篇文章主要介绍微信小程序如何实现自定义模态弹窗组件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!小程序自带一个showModal弹窗,调用很简单,但是限制很多,title有字数限制...
    99+
    2024-04-02
  • 微信小程序如何实现自定义弹窗组件
    本篇内容主要讲解“微信小程序如何实现自定义弹窗组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序如何实现自定义弹窗组件”吧!首先,放一下,最终的效果图:这是我们最后要实现的效果那么,首...
    99+
    2023-07-02
  • 微信小程序自定义模态框
    本文实例为大家分享了微信小程序自定义模态框的具体代码,供大家参考,具体内容如下 效果展示 可在模态框中添加图片输入框 代码展示-wxml <button class="sho...
    99+
    2024-04-02
  • 微信小程序原生自定义弹窗效果
    背景 微信小程序原生的在弹出层wx.showModal中可以通过配置项editable配置输入框,但是对于微信的版本有限制,微信版本过低无法显示,所以需要实现弹出层的效果 如下图 ...
    99+
    2024-04-02
  • 微信小程序自定义用户登录弹窗
    本文实例为大家分享了微信小程序自定义用户登录弹窗的具体代码,供大家参考,具体内容如下 view <button   class="btn" bindtap="powerDr...
    99+
    2024-04-02
  • 微信小程序如何自定义模态对话框
    这篇文章给大家分享的是有关微信小程序如何自定义模态对话框的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。由于官方API提供的显示模态弹窗,只能简单地显示文字内容,不能对对话框内容进...
    99+
    2024-04-02
  • 微信小程序自定义Dialog弹框
    本文实例为大家分享了微信小程序自定义Dialog弹框的具体代码,供大家参考,具体内容如下 一、创建组件 1、在根目录下自定义一个components文件夹,用来存放自定义的组件。2...
    99+
    2024-04-02
  • 微信小程序自定义Modal弹框
    本文实例为大家分享了微信小程序自定义Modal弹框的具体代码,供大家参考,具体内容如下 一、创建组件 1、在根目录下自定义一个components文件夹,用来存放自定义的组件。2、...
    99+
    2024-04-02
  • 微信小程序怎么自定义用户登录弹窗
    这篇文章主要介绍“微信小程序怎么自定义用户登录弹窗”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序怎么自定义用户登录弹窗”文章能帮助大家解决问题。view<button &n...
    99+
    2023-07-02
  • 解决微信小程序tabBar自定义弹窗遮挡不住
    背景 最近开发微信小程序发现一个问题,就是微信小程序官方自带的tabbar层级很高,自定义modal盖不住tabbar的问题;翻阅官方的社区,很多同学说 设置z-index:99999;可以解决这个问...
    99+
    2023-09-01
    微信小程序 小程序 微信
  • 微信小程序如何实现自定义纯净模态框
    这篇文章主要介绍微信小程序如何实现自定义纯净模态框,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!由于官方API提供的模态框只能显示简单的文字,但是在实际应用场景中,我们需要模态框上能...
    99+
    2024-04-02
  • 微信小程序自定义弹框效果
    本文实例为大家分享了微信小程序自定义弹框效果的具体代码,供大家参考,具体内容如下 wxml <!-- 取消订单按钮 --> <view class="cancelB...
    99+
    2024-04-02
  • 微信小程序如何实现自定义Toast弹框
    小编给大家分享一下微信小程序如何实现自定义Toast弹框,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!先来看一下效果图: 怎么用...
    99+
    2024-04-02
  • 微信小程序自定义状态栏
    本文实例为大家分享了微信小程序自定义状态栏的具体代码,供大家参考,具体内容如下 首先我们需要在json文件中修改一下配置。如果我们只需要在一个页面使用自定义状态栏,我们可以在这个页面...
    99+
    2024-04-02
  • 微信小程序实现自定义弹窗组件的示例代码
    目录编写组件代码Dialog.wxmlDialog.jsDialog.wxss调用自定义组件上一篇中说的是小程序自带的弹窗组件,今天,我们来试试小程序的自定义组件,我们自定义一个带确...
    99+
    2024-04-02
  • 微信小程序如何实现自定义弹出模态框禁止底部滚动功能
    小编给大家分享一下微信小程序如何实现自定义弹出模态框禁止底部滚动功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!图示:wxml代码:<view class='fi...
    99+
    2024-04-02
  • vue如何实现自定义模态弹窗组件
    本篇内容主要讲解“vue如何实现自定义模态弹窗组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue如何实现自定义模态弹窗组件”吧! 一、创建弹窗组件 qu...
    99+
    2024-04-02
  • 微信小程序如何实现弹框和模态框
    小编给大家分享一下微信小程序如何实现弹框和模态框,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!微信小程序 弹框和模态框实现代码实...
    99+
    2024-04-02
  • 微信小程序自定义可滚动的弹出框
    本文实例为大家分享了微信小程序自定义可滚动弹出框的具体代码,供大家参考,具体内容如下 最近在写一个装修的活动,规则是点击按钮弹出加上相应的动画。 首先我们需要一个按钮触发显示(如图,...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作