微信小程序实现底部弹出模态框


Posted in Javascript onNovember 18, 2020

本文实例为大家分享了微信小程序实现底部弹出模态框的具体代码,供大家参考,具体内容如下

微信小程序实现底部弹出模态框

代码:

<view class="modals modals-bottom-dialog" hidden="{{hideModal}}" style="width:100%;height:{{widheight}}px">
 <view class="modals-cancel" bindtap="hideModal"></view>
 <view class="bottom-dialog-body bottom-pos" animation="{{animationData}}">
 <view class="comment_top">
  <view></view>
  <view class="comment_num">{{comment.length}}条评论</view>
  <view class="comment_close" bindtap="hideModal">×</view>
 </view>
 <view class="comment_list">
  <view class="comment_li" wx:for="{{comment}}" wx:key="{{index}}">
  <image class="comment_li_img" src="{{item.headpic}}"></image>
  <view class="comment_li_info">
   <view class="comment_li_name">{{item.nickname}}</view>
   <view class="comment_li_content">{{item.memo}}
   <text class="comment_li_date">9-24</text>
   </view>
  </view>
  </view>
 </view>
 <view class="comment_inputbox">
  <input class="comment_input" maxlength="120" adjust-position value="{{commentform}}" bindinput="commentinput" placeholder="有何高见,讲来听听"></input>
  <view class="comment_sendbtn" bindtap="sendcomment">发送</view>
 </view>
 </view>
</view>

CSS:

/* 评论 */
/*模态框*/
.modals{
 position:fixed;
 z-index: 100000;
 top:0; 
 left: 0; 
 right:0; 
 bottom: 0;
 }
.modals-cancel{
 position:absolute; 
 z-index:1000; 
 top:0; 
 left: 0; 
 right:0; 
 bottom: 0; 
 /* background-color: rgba(0,0,0,.5); */
 }
.bottom-dialog-body{
 width: 99%;
 margin: 0 auto;
 position:absolute; 
 z-index:10001; 
 bottom:0; 
 left:0; 
 right:0; 
 height:65%; 
 background-color: #fff;
 border-top-left-radius: 10rpx;
 border-top-right-radius: 10rpx;
 overflow: hidden;
 display: flex;
 flex-direction: column;
 }
/*动画前初始位置*/
.bottom-pos{
 -webkit-transform:translateY(100%);
 transform:translateY(100%);
}
.comment_top{
 width: 100%;
 display: flex;
 justify-content: space-between;
 align-items: center;
 border-bottom: 1rpx solid #f2f2f2;
 padding: 10rpx 24rpx;
 box-sizing: border-box;
}
.comment_num{
 font-size: 30rpx;
}
.comment_close{
 font-size: 62rpx;
 line-height: 50rpx;
}
.comment_list{
 flex: 1;
 overflow: hidden;
}
.comment_li{
 display: flex;
 padding: 10rpx 24rpx;
 box-sizing: border-box;
}
.comment_li_img{
 width: 40rpx;
 height: 40rpx;
 border-radius: 50%;
 margin-right: 16rpx;
}
.comment_li_info{
 flex: 1;
}
.comment_li_name{
 font-size: 30rpx;
}
.comment_li_content{
 font-size: 28rpx;
}
.comment_li_date{
 color: #999;
 font-size: 24rpx;
 margin-left: 20rpx;
}
.comment_inputbox{
 display: flex;
 padding: 20rpx 24rpx;
 box-sizing: border-box;
 align-items: center;
 justify-content: space-between;
 border-top: 1rpx solid #f2f2f2;
}
.comment_input{
 font-size: 30rpx;
 flex: 1;
}
.comment_sendbtn{
 font-size: 30rpx;
 background: #dd5923;
 color: #fff;
 padding: 5rpx 18rpx;
 border-radius: 10rpx;
}

js:

Page({
 data: {
 hideModal: true, //模态框的状态 true-隐藏 false-显示
 animationData: {},
 },
 
 // 显示遮罩层
 showModal: function () {
 var that = this;
 that.setData({
  hideModal: false
 })
 var animation = wx.createAnimation({
  duration: 600,//动画的持续时间 默认400ms 数值越大,动画越慢 数值越小,动画越快
  timingFunction: 'ease',//动画的效果 默认值是linear
 })
 this.animation = animation
 setTimeout(function () {
  that.fadeIn();//调用显示动画
 }, 200)
 },

 // 隐藏遮罩层
 hideModal: function () {
 var that = this;
 var animation = wx.createAnimation({
  duration: 800,//动画的持续时间 默认400ms 数值越大,动画越慢 数值越小,动画越快
  timingFunction: 'ease',//动画的效果 默认值是linear
 })
 this.animation = animation
 that.fadeDown();//调用隐藏动画 
 setTimeout(function () {
  that.setData({
  hideModal: true
  })
 }, 720)//先执行下滑动画,再隐藏模块

 },

 //动画集
 fadeIn: function () {
 this.animation.translateY(0).step()
 this.setData({
  animationData: this.animation.export()//动画实例的export方法导出动画数据传递给组件的animation属性
 })
 },
 fadeDown: function () {
 this.animation.translateY(300).step()
 this.setData({
  animationData: this.animation.export(),
 })
 },
})

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

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

Javascript 相关文章推荐
JS遮罩层效果 兼容ie firefox jQuery遮罩层
Jul 26 Javascript
JavaScript中的类数组对象介绍
Dec 30 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
Feb 02 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
Jul 10 Javascript
js 转义字符及URI编码详解
Feb 28 Javascript
使用AngularJS2中的指令实现按钮的切换效果
Mar 27 Javascript
使用ionic播放轮询广告的实现方法(必看)
Apr 24 Javascript
详解react-webpack2-热模块替换[HMR]
Aug 03 Javascript
你应该知道的几类npm依赖包管理详解
Oct 06 Javascript
laypage.js分页插件使用方法详解
Jul 27 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
Sep 20 Javascript
vue treeselect获取当前选中项的label实例
Aug 31 Javascript
微信小程序实现左滑删除效果
Nov 18 #Javascript
详解vue实现坐标拾取器功能示例
Nov 18 #Vue.js
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 #jQuery
Vue如何循环提取对象数组中的值
Nov 18 #Vue.js
vue在图片上传的时候压缩图片
Nov 18 #Vue.js
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
Nov 18 #Vue.js
微信小程序实现多张图片上传功能
Nov 18 #Javascript
You might like
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
如何使用php判断所处服务器操作系统的类型
2013/06/20 PHP
微信公众平台开发关注及取消关注事件的方法
2014/12/23 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
Javascript实现的分页函数
2006/12/22 Javascript
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
js 实现一些跨浏览器的事件方法详解及实例
2016/10/27 Javascript
js实现HashTable(哈希表)的实例分析
2016/11/21 Javascript
vue数据双向绑定原理解析(get &amp; set)
2017/03/08 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
js代码实现轮播图
2020/05/04 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
python实现在目录中查找指定文件的方法
2014/11/11 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
python统计指定目录内文件的代码行数
2019/09/19 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
TripAdvisor台湾:全球最大旅游网站
2018/08/26 全球购物
大学校园毕业自我鉴定
2014/01/15 职场文书
群众路线个人整改措施
2014/10/24 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
mysql如何能有效防止删库跑路
2021/10/05 MySQL
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS