wepy微信小程序自定义底部弹出框功能,显示与隐藏效果(淡入淡出,滑入滑出)

 视图html部分

  <view class="salePz"><view class="btnSelPz" @tap="pzModelClick">去选择</view><!-- modal --><view class="modal modal-bottom-dialog" hidden="{{hideFlag}}"><view class="modal-cancel" bindtap="hideModal"></view><view class="bottom-dialog-body bottom-positon" animation="{{animationData}}"><!-- --><view class='Mselect'><view wx:for="{{optionList}}" wx:key="unique" data-value='{{item}}' bindtap='getOption'>{{item}}</view></view><view></view><view class='Mcancel' bindtap='mCancel'><text>取消</text></view></view></view></view>

style样式 

<style lang="less">.btnSelPz{width: 150rpx;height: 60rpx;display: flex;justify-content: center;align-items: center;background: #2a67ea;border-radius: 10rpx;color: white;
margin-left: 10rpx;
}// 底部弹出框-------------------------------------------
.arrow{display:inline-block;border:6px solid transparent;border-top-color:#000;margin-left:8px;position:relative;top:6rpx;
}
/* ---------------------------- */
/*模态框*/
.modal{position:fixed; top:0; right:0; bottom:0; left:0; z-index:1000;}
.modal-cancel{position:absolute; z-index:2000; top:0; right:0; bottom: 0; left:0; background:rgba(0,0,0,0.3);}
.bottom-dialog-body{width:100%; position:absolute; z-index:3000; bottom:0; left:0;background:#dfdede;}
/*动画前初始位置*/
.bottom-positon{-webkit-transform:translateY(100%);transform:translateY(100%);}/* 底部弹出框 */
.bottom-positon{text-align: center;
}
.Mselect{margin-bottom: 20rpx;
}
.Mselect view{padding: 26rpx 0;background: #fff;
}
.Mselect view:not(:last-of-type){border-bottom: 1px solid #dfdede;
}
.Mcancel{background: #fff;padding: 26rpx 0;
}
</style>

 js部分

 export default class Web extends wepy.page {data = {//弹出框optionList:['所有','选项1','选项2'],value:'所有',hideFlag: true,//true-隐藏 false-显示animationData: {},//}}// 显示遮罩层showModal () {this.hideFlag=false// 创建动画实例var animation = wx.createAnimation({duration: 400,//动画的持续时间timingFunction: 'ease',//动画的效果 默认值是linear->匀速,ease->动画以低速开始,然后加快,在结束前变慢})this.animation = animation; //将animation变量赋值给当前动画var that=thisvar time1 = setTimeout(function () {that.slideIn();//调用动画--滑入//  var that = this;clearTimeout(time1);time1 = null;}, 100)this.$apply()}// 隐藏遮罩层hideModal () {var animation = wx.createAnimation({duration: 400,//动画的持续时间 默认400mstimingFunction: 'ease',//动画的效果 默认值是linear})this.animation = animationthis.slideDown();//调用动画--滑出var that=thisvar time1 = setTimeout(function () {that.hideFlag=truethat.$apply()clearTimeout(time1);time1 = null;}, 220)//先执行下滑动画,再隐藏模块this.$apply()}//动画 -- 滑入slideIn (){this.animation.translateY(0).step() // 在y轴偏移,然后用step()完成一个动画this.animationData=this.animation.export()this.$apply()}//动画 -- 滑出slideDown(){this.animation.translateY(300).step()this.animationData= this.animation.export()this.$apply()}methods = {// 点击选项getOption(e){this.value=e.currentTarget.dataset.valuethis.hideFlag=truethis.$apply()},//取消mCancel() {this.hideModal();this.$apply()},methods = {// 点击选项getOption(e){this.value=e.currentTarget.dataset.valuethis.hideFlag=truethis.$apply()},//取消mCancel() {this.hideModal();this.$apply()},}

Tips: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/36102.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Springboot+Typst的PDF生成方案,适用于报告打印/标签打印/二维码打印等

基于SpringbootTypst的PDF生成方案&#xff0c;适用于报告打印/标签打印/二维码打印等。 仅提供后端实现 Typst2pdf-for-report/label/QR code github 环境 JDK11linux/windows/mac 应用场景 适用于定制化的报告模板/标签/条码/二维码等信息的pdf生成方案。通过浏览器的p…

leetcode每日一题:使字符串平衡的最小交换次数

引言 今天开始&#xff0c;打算做一个新的系列&#xff1a;leetcode每日一题的题解。预期每天用90分钟的时间&#xff0c;去写一篇当天的每日一题的题解&#xff0c;这个目标跟早起结合在一起&#xff0c;才有足够的时间完成。其实早在前几年&#xff0c;就开始断断续续做leetc…

Learn Redis 5 (Java)

分布式锁 在面对高并发业务时&#xff0c;单个项目解决不过来&#xff0c;此时一个项目部署到多个机器&#xff0c;这就是集群模式&#xff0c;不同的项目实例就会对应不同的端口和JVM。 1.模拟集群模式 Nginx实现负载均衡&#xff08;轮询&#xff09; 2.使用集群模…

lua学习(三)

错误处理 assert断言 作用&#xff1a;确保某些数据是符合预期的&#xff0c;避免影响最终结果。 格式&#xff1a;assert(条件语句&#xff0c;报错信息) 当条件语句为true时&#xff0c;assert语句不会有任何行为&#xff0c;但是当为false时&#xff0c;assert会将报错信息…

基于eNSP的IPV4和IPV6企业网络规划

基于eNSP的IPV4和IPV6企业网络规划 前言网络拓扑设计功能设计技术详解一、网络设备基础配置二、虚拟局域网&#xff08;VLAN&#xff09;与广播域划分三、冗余协议与链路故障检测四、IP地址自动分配与DHCP相关配置五、动态路由与安全认证六、广域网互联及VPN实现七、网络地址转…

优选算法合集————双指针(专题四)

1&#xff0c;一维前缀和模版 题目描述&#xff1a; 描述 给定一个长度为n的数组a1,a2,....ana1​,a2​,....an​. 接下来有q次查询, 每次查询有两个参数l, r. 对于每个询问, 请输出alal1....aral​al1​....ar​ 输入描述&#xff1a; 第一行包含两个整数n和q. 第二行…

Web3游戏行业报告

一&#xff0c;gamefi经济 什么是gamefi GameFi是一个缩写&#xff0c;它结合了游戏和去中心化金融(“DeFi”)这两个术语&#xff0c;关注的是游戏玩法如何在去中心化系统中实现货币化。对于游戏而言&#xff0c;只要开放了交易市场&#xff0c;允许玩家自由买卖&#xff0c;…

【程序人生】成功人生架构图(分层模型)

文章目录 ⭐前言⭐一、根基层——价值观与使命⭐二、支柱层——健康与能量⭐三、驱动层——学习与进化⭐四、网络层——关系系统⭐五、目标层——成就与财富⭐六、顶层——意义与传承⭐外层&#xff1a;调节环——平衡与抗风险⭐思维导图 标题详情作者JosieBook头衔CSDN博客专家…

拖拽实现+摇杆实现

拖拽实现 拖拽事件实现: 半透明渐变贴图在ios设备下&#xff0c;使用压缩会造成图片质量损失&#xff0c;所以可以将半透明渐变UI切片单独制作真彩色图集 拖拽事件组 IBeginDragHandler:检测到射线后&#xff0c;当拖拽动作开始时执行一次回调函数 IDragHandler:拖拽开始后&a…

vs2017版本与arcgis10.1的ArcObject SDK for .NET兼容配置终结解决方案

因电脑用的arcgis10.1,之前安装的vs2010正常能使用AO和AE&#xff0c;安装vs2017后无法使用了&#xff0c;在重新按照新版本arcgis engine或者arcObject费时费力&#xff0c;还需要重新查找资源。 用vs2017与arc10.1的集成主要两个问题&#xff0c;1&#xff1a;安装后vs中没有…

C语言和C++到底有什么关系?

C 读作“C 加加”&#xff0c;是“C Plus Plus”的简称。 顾名思义&#xff0c;C 就是在 C 语言的基础上增加了新特性&#xff0c;玩出了新花样&#xff0c;所以才说“Plus”&#xff0c;就像 Win11 和 Win10、iPhone 15 和 iPhone 15 Pro 的关系。 C 语言是 1972 年由美国贝…

企业微信群聊机器人开发

拿到机器人hook 机器人开发文档 https://developer.work.weixin.qq.com/document/path/91770

AT指令集-NBIOT

是什么&#xff1f; 窄带物联网&#xff08;Narrow Band Internet of Things, NB-IoT&#xff09;成为万物互联网络的一个重要分支支持低功耗设备在广域网的蜂窝数据连接&#xff0c;也被叫作低功耗广域网(LPWAN)NB-IoT支持待机时间长、对网络连接要求较高设备的高效连接NB-Io…

网络爬虫【爬虫库urllib】

我叫不三不四&#xff0c;很高兴见到大家&#xff0c;欢迎一起学习交流和进步 今天来讲一讲爬虫 urllib介绍 Urllib是Python自带的标准库&#xff0c;无须安装&#xff0c;直接引用即可。 Urllib是一个收集几个模块来使用URL的软件包&#xff0c;大致具备以下功能。 ● urlli…

vue中js简单创建一个事件中心/中间件/eventBus

vue中js简单创建一个事件中心/中间件/eventBus 目录结构如下&#xff1a; eventBus.js class eventBus {constructor() {this.events {};}// 监听事件on(event, callback) {if (!this.events[event]) {this.events[event] [];}this.events[event].push(callback);}// 发射…

弹球小游戏-简单开发版

一、需求 弹球小游戏是一个简单的互动游戏&#xff0c;玩家需要控制一个挡板在窗口底部左右移动&#xff0c;以接住从上方落下的球。游戏的主要需求包括&#xff1a; (1) 游戏界面 &#xff1a;创建一个指定尺寸的游戏窗口&#xff0c;显示球和挡板。 (2) 球的运动 &#xf…

Cursor与Blender-MCP生成3D模型

随着DeepSeek的热度&#xff0c;各行各业接入AI智能&#xff0c;当然作为一个深受3D爱好者喜爱的软件——Blender&#xff0c;也接入了AI智能&#xff0c;通过Blender-MCP&#xff0c;开启一场Blender的智能化模型创建的世界之旅。 目录 1.准备工作2.环境配置2.1 Mac安装2.2 W…

简单以太网配置

display arp //查看路由器mac地址 交换机配置命令&#xff1a; system-view // 从用户视图进入系统视图 dis mac-address //查看mac地址表 路由器配置命令: system-view // 从用户视图进入系统视图 int GigabitEthernet 0/0/0 //进入G口 0/0/0 进入之后配置网关: ip addre…

SpringBoot可以同时处理多少请求?

大家好&#xff0c;我是锋哥。今天分享关于【SpringBoot可以同时处理多少请求&#xff1f;】面试题。希望对大家有帮助&#xff1b; SpringBoot可以同时处理多少请求&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Boot 本身并不直接限制可以处…

一、初始 Linux

文章目录 一、操作系统概述二、Linux 初识1. Linux 的组成2. Linux 发行版 三、远程链接 Linux 系统1. 四、WSL (windows subsystem for linux)1. 什么是 WSL2. 如何下载 WSL3. 安装不同的 Linux 发行版4. 启动停止使用指定发行版5. 卸载与备份6. 文件共享7. 命令混用8. 用 vsc…