当前位置: 首页 > news >正文

小程序的右侧抽屉开关动画手写效果

<template><view><button @click="openDrawer">打开抽屉</button><view v-if="showDrawer" class="drawer" :style="{ backgroundColor: bgColor }" @click="closeDrawer"><view class="drawerContent" :animation="animationData" @click.stop><view class="drawerName"><view style="font-weight: bold;" class="drawerName_title">价格区间(元)</view><view style="position: relative;"><text @click="closeDrawer" class="drawerName_icon qh-rt-single qh-rt-a-zu4416 choose-sku-close-icon"></text></view></view><!-- ... 其余内容保持不变 ... --></view></view></view>
</template><script>
export default {data() {return {showDrawer: false,animationData: {},bgColor: 'rgba(0, 0, 0, 0)',animation: null,// ... 其他数据}},methods: {openDrawer() {this.showDrawer = true;this.bgColor = 'rgba(0, 0, 0, 0)';this.$nextTick(() => {this.animation = uni.createAnimation({duration: 300,timingFunction: 'ease-out',});this.animation.translateX(0).step();this.animationData = this.animation.export();// 背景颜色渐变let opacity = 0;const bgInterval = setInterval(() => {opacity += 0.1;this.bgColor = `rgba(0, 0, 0, ${opacity})`;if (opacity >= 0.5) {clearInterval(bgInterval);}}, 30);});},closeDrawer() {this.animation.translateX('100%').step();this.animationData = this.animation.export();// 背景颜色渐变let opacity = 0.5;const bgInterval = setInterval(() => {opacity -= 0.1;this.bgColor = `rgba(0, 0, 0, ${opacity})`;if (opacity <= 0) {clearInterval(bgInterval);this.showDrawer = false;}}, 30);}}
}
</script><style lang="scss">
.drawer {position: fixed;top: 0;left: 0;width: 100%;height: 100%;display: flex;justify-content: flex-end;z-index: 999;
}.drawerContent {display: flex;flex-direction: column;justify-content: space-between;height: 100%;padding-top: 140rpx;background: #fff;width: 512rpx;transform: translateX(100%); // 初始位置在屏幕右侧
}// ... 其他样式保持不变 ...
</style>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • javascript如何打印九九乘法表
  • Computer Exercise
  • 笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel与内核进程
  • C语言知识体系思维导图
  • 【828华为云征文|手把手教你如何用华为云Flexus X实例部署之前爆火的“人生重启“游戏】
  • EP8 我的页面布局
  • Win10系统Legacy转UEFI
  • 红海云 × 紫光同芯 | 数字化驱动芯片领军企业人力资源管理新升级
  • Vue项目异常:has no default export.Vetur(1192)
  • 基于Flink的流式计算可视化开发实践之配置->任务生成->任务部署过程
  • 动手学深度学习(pytorch土堆)-04torchvision中数据集的使用
  • C++:类与对象——详解继承、多继承、虚继承
  • SQL进阶技巧:每年在校人数统计 | 区间重叠问题
  • Python网络爬虫:如何高效获取网络数据
  • Python 基本库用法:数学建模
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 345-反转字符串中的元音字母
  • canvas 五子棋游戏
  • ComponentOne 2017 V2版本正式发布
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • hadoop集群管理系统搭建规划说明
  • java概述
  • oldjun 检测网站的经验
  • Python_网络编程
  • Python利用正则抓取网页内容保存到本地
  • SpiderData 2019年2月13日 DApp数据排行榜
  • vue 配置sass、scss全局变量
  • 仿天猫超市收藏抛物线动画工具库
  • 关于使用markdown的方法(引自CSDN教程)
  • 基于HAProxy的高性能缓存服务器nuster
  • 微信小程序--------语音识别(前端自己也能玩)
  • 原生Ajax
  • Spring Batch JSON 支持
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (09)Hive——CTE 公共表达式
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (python)数据结构---字典
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (六)vue-router+UI组件库
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (十一)c52学习之旅-动态数码管
  • (限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .Family_物联网
  • .Net Web项目创建比较不错的参考文章
  • .NET 命令行参数包含应用程序路径吗?
  • .so文件(linux系统)
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • [ Python ]使用Charles对Python程序发出的Get与Post请求抓包-解决Python程序报错问题
  • [C#]DataTable常用操作总结【转】
  • [C#]winform部署PaddleOCRV3推理模型
  • [C++]spdlog学习
  • [EFI]Atermiter X99 Turbo D4 E5-2630v3电脑 Hackintosh 黑苹果efi引导文件
  • [hdu2196]Computer树的直径