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


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 相关文章推荐
IE6/7/8/9不支持exec的简写方式
May 25 Javascript
JavaScript判断DOM何时加载完毕的技巧
Nov 11 Javascript
JS实现图片预加载无需等待
Dec 21 Javascript
jQuery选择器全集详解
Nov 24 Javascript
jQuery+PHP星级评分实现方法
Oct 02 Javascript
如何使用jquery实现文字上下滚动效果
Oct 12 Javascript
微信小程序 scroll-view组件实现列表页实例代码
Dec 14 Javascript
angular.js中解决跨域问题的三种方式
Jul 12 Javascript
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
jquery插件开发模式实例详解
Jul 20 jQuery
layui复选框的全选与取消实现方法
Sep 02 Javascript
vue编写简单的购物车功能
Jan 08 Vue.js
微信小程序实现弹幕墙(祝福墙)
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命令行用法入门实例教程
2014/10/27 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
js生成缩略图后上传并利用canvas重绘
2014/05/15 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
js判断是否是手机页面
2017/03/17 Javascript
jquery+css实现侧边导航栏效果
2017/06/12 jQuery
vue.js学习之UI组件开发教程
2017/07/03 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
react中Suspense的使用详解
2019/09/01 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
Python如何将函数值赋给变量
2020/04/28 Python
python Tornado框架的使用示例
2020/10/19 Python
CSS3 @media的基本用法总结
2019/09/10 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
移动通信行业实习自我鉴定
2013/09/28 职场文书
建筑施工员岗位职责
2013/11/26 职场文书
好人好事事迹材料
2014/02/12 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
邹越演讲观后感
2015/06/15 职场文书
python本地文件服务器实例教程
2021/05/02 Python
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫