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


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清除IE浏览器缓存的方法
Jul 26 Javascript
调用jQuery滑出效果时闪烁的解决方法
Mar 27 Javascript
使用EVAL处理jqchart jquery 折线图返回数据无效的解决办法
Nov 26 Javascript
百度搜索框智能提示案例jsonp
Nov 28 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
Feb 27 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
Mar 06 Javascript
Vue实现自带的过滤器实例
Mar 09 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
Mar 27 jQuery
使用ionic播放轮询广告的实现方法(必看)
Apr 24 Javascript
微信小程序实现日历功能
Nov 27 Javascript
vue-cli配置全局sass、less变量的方法
Jun 06 Javascript
vue+element实现动态加载表单
Dec 13 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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
php MySQL与分页效率
2008/06/04 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
php简单实现快速排序的方法
2015/04/04 PHP
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
2017/07/03 PHP
tp5框架的增删改查操作示例
2019/10/31 PHP
JavaScript 基础篇之运算符、语句(二)
2012/04/07 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
JQuery插件ajaxfileupload.js异步上传文件实例
2015/05/19 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
微信小程序 开发之快递查询功能的实现
2017/01/09 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
vee-validate vue 2.0自定义表单验证的实例
2018/08/28 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
JavaScript实现HSL拾色器
2020/05/21 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
pyside写ui界面入门示例
2014/01/22 Python
python中enumerate函数用法实例分析
2015/05/20 Python
python生成ppt的方法
2018/06/07 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
浅谈Python中range与Numpy中arange的比较
2020/03/11 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
纯HTML5+CSS3制作图片旋转
2016/01/12 HTML / CSS
什么是测试驱动开发(TDD)
2012/02/15 面试题
职业教育毕业生求职信
2013/11/09 职场文书
遗嘱继承公证书
2014/04/09 职场文书
八年级物理教学反思
2016/02/19 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书
MySQL分区路径子分区再分区
2022/04/13 MySQL