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


Posted in Javascript onNovember 18, 2020

微信小程序的底部弹出框,供大家参考,具体内容如下

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

wxml

<!-- 弹出框 start -->
<view class="dialog_screen" bindtap="hideModal" wx:if="{{showModalStatus}}"></view>
<view animation="{{animationData}}" class="dialog_attr_box" wx:if="{{showModalStatus}}">
 <view style='background:white;position: relative;overflow: hidden;'>
 <view class='dialog_title'>选择系列</view>
 <view wx:for="{{list}}" wx:key="name" class='dialog_content'>
  <view class="{{item.status==0?'type_nor':'type_pre'}}" bindtap='typeClick' data-index='{{index}}'>{{item.txt}}</view>
 </view>
 </view>
</view>
<!-- 弹出框 end -->

wxss

/* dialog start */

.dialog_screen {
 width: 100%;
 height: 100%;
 position: fixed;
 top: 0;
 left: 0;
 background: #000;
 opacity: 0.2;
 overflow: hidden;
 z-index: 1000;
 color: #fff;
}

.dialog_attr_box {
 width: 100%;
 overflow: hidden;
 position: fixed;
 bottom: 0;
 left: 0;
 z-index: 2000;
 background: #fff;
 padding-top: 1px;
}

.dialog_title {
 font-size: 16px;
 height: 30px;
 display: flex;
 align-items: center;
 padding: 10px;
 background: #80cbc4;
 color: white;
}

.dialog_content {
 position: relative;
 float: left;
 padding: 10px 10px;
 width: 25%;
 box-sizing: border-box;
}

/* dialog end */

js

var postData = require('../../../data/StoreData.js');
var typeList = postData.postListData;
Page({
 data: {
 list: typeList
 },
 onLoad: function(options) {
 var id = options.id; //页面跳转传过来的值
 //初始化默认一部分数据已选中
 for (var i = 0; i < typeList.length; i++) {
  if (i % 2 == 0) {
  typeList[i].status = 0;
  } else {
  typeList[i].status = 1;
  }
 }
 this.setData({
  list: typeList
 });
 },
 showModal: function() {
 // 显示遮罩层
 var animation = wx.createAnimation({
  duration: 200,
  timingFunction: "linear",
  delay: 0
 })
 this.animation = animation
 animation.translateY(300).step()
 this.setData({
  animationData: animation.export(),
  showModalStatus: true
 })
 setTimeout(function() {
  animation.translateY(0).step()
  this.setData({
  animationData: animation.export()
  })
 }.bind(this), 200)
 },
 hideModal: function() {
 // 隐藏遮罩层
 var animation = wx.createAnimation({
  duration: 200,
  timingFunction: "linear",
  delay: 0
 })
 this.animation = animation
 animation.translateY(300).step()
 this.setData({
  animationData: animation.export(),
 })
 setTimeout(function() {
  animation.translateY(0).step()
  this.setData({
  animationData: animation.export(),
  showModalStatus: false
  })
 }.bind(this), 200)
 },
 typeClick: function(e) {
 var index = e.target.dataset.index;
 for (var i = 0; i < typeList.length; i++) {
  if (i == index) {
  var curStatus = typeList[i].status;
  if(curStatus == 0){
   typeList[i].status = 1;
  }else{
   typeList[i].status=0;
  }
  break;
  }
 }
 this.setData({
  list: typeList
 });
 }
})

data

var list = [{
 "id": 1,
 "txt": "AA"
 },
 {
 "id": 2,
 "txt": "BB"
 },
 {
 "id": 3,
 "txt": "CC"
 },
 {
 "id": 4,
 "txt": "DD"
 },
 {
 "id": 5,
 "txt": "EE"
 },
 {
 "id": 6,
 "txt": "FF"
 },
 {
 "id": 7,
 "txt": "RR"
 },
 {
 "id": 8,
 "txt": "HH"
 },
 {
 "id": 9,
 "txt": "KK"
 },
 {
 "id": 10,
 "txt": "WW"
 }
]
module.exports = {
 postListData: list
}

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

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

Javascript 相关文章推荐
可以用来调试JavaScript错误的解决方案
Aug 07 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
Oct 29 Javascript
JavaScript+CSS控制打印格式示例介绍
Jan 07 Javascript
javascript 动态创建表格
Jan 08 Javascript
详解JavaScript中的Unescape()和String() 函数
Nov 09 Javascript
JS表单数据验证的正则表达式(常用)
Feb 18 Javascript
关于Vue实现组件信息的缓存问题
Aug 23 Javascript
微信小程序实现手指触摸画板
Jul 09 Javascript
通过图带你深入了解vue的响应式原理
Jun 21 Javascript
Vue 刷新当前路由的实现代码
Sep 26 Javascript
小程序跨页面交互的作用与方法详解
Jan 07 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
Sep 07 Javascript
微信小程序实现弹幕墙(祝福墙)
Nov 18 #Javascript
一篇超完整的Vue新手入门指导教程
Nov 18 #Vue.js
基于Cesium绘制抛物弧线
Nov 18 #Javascript
vue3.0实现点击切换验证码(组件)及校验
Nov 18 #Vue.js
js实现简易计算器小功能
Nov 18 #Javascript
微信小程序实现购物车功能
Nov 18 #Javascript
在Vue中使用Echarts可视化库的完整步骤记录
Nov 18 #Vue.js
You might like
PHP与SQL语句常用大全
2016/12/10 PHP
你需要知道的JavsScript可以做什么?
2007/06/29 Javascript
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
2015/08/12 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
各式各样的导航条效果css3结合jquery代码实现
2016/09/17 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
详解几十行代码实现一个vue的状态管理
2019/01/28 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
[05:07]DOTA2英雄梦之声_第14期_暗影恶魔
2014/06/20 DOTA
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python3使用urllib模块制作网络爬虫
2016/04/08 Python
深入理解Python装饰器
2016/07/27 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
2021/01/05 Python
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
股权收购意向书
2014/04/01 职场文书
社区志愿者培训方案
2014/06/10 职场文书
委托证明范本
2014/11/25 职场文书
先进个人事迹材料
2014/12/29 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
停电调休通知
2015/04/16 职场文书
Redis实现订单过期删除的方法步骤
2022/06/05 Redis
详解CSS3浏览器兼容
2022/12/24 HTML / CSS