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


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 相关文章推荐
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
Mar 10 Javascript
VC调用javascript的几种方法(推荐)
Aug 09 Javascript
微信小程序 实例应用(记账)详解
Sep 28 Javascript
使用 Node.js 开发资讯爬虫流程
Jan 07 Javascript
ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)
Feb 08 Javascript
小程序实现单选多选功能
Nov 04 Javascript
React Component存在的几种形式详解
Nov 06 Javascript
ES6 Map结构的应用实例分析
Jun 26 Javascript
layui扩展上传组件模拟进度条的方法
Sep 23 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
Sep 25 Javascript
JavaScript Dom 绑定事件操作实例详解
Oct 02 Javascript
vue 子组件和父组件传值的示例
Sep 11 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
同时提取多条新闻中的文本一例
2006/10/09 PHP
PHP伪造referer实例代码
2008/09/20 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
js cookies实现简单统计访问次数
2009/11/24 Javascript
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
JS定时器实例
2013/04/17 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
2015/10/31 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
微信小程序表单验证错误提示效果
2017/05/19 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
Python函数可变参数定义及其参数传递方式实例详解
2015/05/25 Python
python购物车程序简单代码
2018/04/18 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
Pycharm最新激活码2019(推荐)
2019/12/31 Python
Python 定义只读属性的实现方式
2020/03/05 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
构建高效课堂实施方案
2014/03/13 职场文书
合作投资意向书
2014/04/01 职场文书
教师节随笔
2015/08/15 职场文书
聊聊redis-dump工具安装问题
2022/01/18 Redis
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
2022/04/11 Vue.js
vue配置型表格基于el-table拓展之table-plus组件
2022/04/12 Vue.js
zabbix配置nginx监控的实现
2022/05/25 Servers
MySQL transaction事务安全示例讲解
2022/06/21 MySQL