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


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 相关文章推荐
jquery ui dialog ie8出现滚动条的解决方法
Dec 06 Javascript
js动态移动滚动条至底部示例代码
Apr 24 Javascript
javascript设计模式之中介者模式Mediator
Dec 30 Javascript
jquery实现的Banner广告收缩效果代码
Sep 02 Javascript
js仿腾讯QQ的web登陆界面
Aug 19 Javascript
值得学习的bootstrap fileinput文件上传工具
Nov 08 Javascript
Bootstrap表单控件使用方法详解
Jan 11 Javascript
写jQuery插件时的注意点
Feb 20 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
Jul 17 Javascript
微信小程序使用gitee进行版本管理
Sep 20 Javascript
Vue路由模块化配置的完整步骤
Aug 14 Javascript
微信小程序中为什么使用var that=this
Aug 27 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函数utf8转gb2312编码
2006/12/21 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
jquery马赛克拼接翻转效果代码分享
2015/08/24 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
jQuery实现倒计时功能 jQuery实现计时器功能
2017/09/19 jQuery
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
python中日期和时间格式化输出的方法小结
2015/03/19 Python
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
python使用selenium实现批量文件下载
2019/03/11 Python
python3 下载网络图片代码实例
2019/08/27 Python
python tkinter 设置窗口大小不可缩放实例
2020/03/04 Python
Python类的动态绑定实现原理
2020/03/21 Python
Python基于smtplib模块发送邮件代码实例
2020/05/29 Python
浅析python 字典嵌套
2020/09/29 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
Urban Outfitters德国官网:美国跨国生活方式零售公司
2018/05/21 全球购物
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
东方通信股份有限公司VC面试题
2014/08/27 面试题
伦敦奥运会口号
2014/06/13 职场文书
办公室文员工作自我鉴定
2014/09/19 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis
JS实现简单的九宫格抽奖
2022/06/28 Javascript