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


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 相关文章推荐
js打开新窗口方法整理
Feb 17 Javascript
使用js判断当前时区TimeZone是否是夏令时
Feb 23 Javascript
javascript 实现map集合
Apr 03 Javascript
Boostrap实现的登录界面实例代码
Oct 09 Javascript
Vue.js bootstrap前端实现分页和排序
Mar 10 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
May 18 Javascript
JS中精巧的自动柯里化实现方法
Dec 12 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
Apr 22 Javascript
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
浅谈JavaScript中你可能不知道URL构造函数的属性
Jul 13 Javascript
vue实现自定义多选按钮
Jul 16 Javascript
React实现评论的添加和删除
Oct 20 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
cmd下运行php脚本
2008/11/25 PHP
php实现httpclient类示例
2014/04/08 PHP
PHP中的类型提示(type hinting)功能介绍
2015/07/01 PHP
php如何获取文件的扩展名
2015/10/28 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
Javascript 定时器调用传递参数的方法
2009/11/12 Javascript
jQuery渐变发光导航菜单的实例代码
2013/03/27 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
Python批量转换文件编码格式
2015/05/17 Python
numpy中实现二维数组按照某列、某行排序的方法
2018/04/04 Python
python selenium firefox使用详解
2019/02/26 Python
python实现微信自动回复机器人功能
2019/07/11 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
python爬虫工具例举说明
2020/11/30 Python
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
欧洲最古老的鞋厂:Peter Kaiser
2019/11/05 全球购物
UDP协议功能
2013/01/06 面试题
酒店门卫岗位职责
2013/12/29 职场文书
双拥工作宣传标语
2014/06/26 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
Django展示可视化图表的多种方式
2021/04/08 Python
python实现双向链表原理
2022/05/25 Python