小程序使用uni.createAnimation只执行一次的问题

news/2025/3/26 18:29:58/

思路:
  1. 在页面创建的时候,创建一个临时动画对象
  2. 调用 step() 来表示一组动画完成
  3. 通过动画实例的export方法导出动画数据传递给组件的animation属性
  4. 还原动画
  5. 页面卸载的时候,清除动画数据
<template><view class="content"><view class="item" v-for="(item,index) in list" :key="item.id"><view class="left"> {{item.memo}} </view><view class="right" @click="praiseMe(index)"><image src="../../static/praise.png"></image><view class="font11">点赞</view><view :animation="animationDataArr[index]" class="praise-me animation-opacity"> +1 </view></view></view></view>
</template><script>
export default {data() {return {list:[{id:"001",memo:"苹果"},{id:"002",memo:"橘子"},{id:"003",memo:"草莓"},{id:"004",memo:"香蕉"}],animationData: {},animationDataArr: []};},onLoad() {// 1 在页面创建的时候,创建一个临时动画对象this.animation = uni.createAnimation();this.animationDataArr=Array(this.list.length).fill({});},onUnload() {// 5 页面卸载的时候,清除动画数据this.animationData = {};this.animationDataArr=Array(this.list.length).fill({});},methods: {// 实现点赞动画效果praiseMe(index) {// 2 调用 step() 来表示一组动画完成this.animation.translateY(-90).opacity(1).step({duration: 400});// 3 通过动画实例的export方法导出动画数据传递给组件的animation属性this.animationData = this.animation;this.animationDataArr[index] = this.animationData.export();// 4 还原动画setTimeout(()=> {this.animation.translateY(0).opacity(0).step({duration: 0});this.animationData = this.animation;this.animationDataArr[index] =  this.animationData.export();}, 600)},}
};
</script><style scoped>
.item{display: flex;align-items: center;text-align: center;border: 1px pink solid;margin-top:20rpx ;padding: 20rpx 0;
}
.item image{width: 80rpx;height: 80rpx;z-index: 10;
}
.item .left{flex: 1;
}
.item .right{width: 300rpx;border-left: 1px pink dashed;padding-top: 50rpx;
}.praise-me {font-size: 14px;color: #feab2a;
}.animation-opacity {font-weight: bold;opacity: 0;
}
</style>

 


http://www.ppmy.cn/news/1150631.html

相关文章

【mysql】 bash: mysql: command not found

在linux 服务器上安装了mysql 也可以正常运行。 但是执行命令&#xff0c;系统提示&#xff1a;bash: mysql: command not found bash:mysql:找不到命令 执行的命令是&#xff1a; mysql -u root -h 127.0.0.1 -p由于系统默认会查找的 /usr/bin/ 中下的命令&#xff0c;如…

机器人制作开源方案 | 扫地机器人

1. 功能描述 扫地机器人是现代家庭清洁的得力助手&#xff0c;能够自主规划清扫路径&#xff0c;避开障碍物&#xff0c;有效覆盖整个清洁区域。扫地机器人的出现极大地减轻了家庭清洁的负担&#xff0c;节省了时间和精力&#xff0c;它可以定期清理地面&#xff0c;确保家居环…

lvgl overview

https://docs.lvgl.io/master/get-started/quick-overview.html 图像元素 屏幕上的图像元素以单根对象树管理&#xff0c;默认情况下根对象就是显示器的活动显示器——act_scr&#xff0c;在显示器注册时创建,参见lv_disp_drv_register。 应用也可以自己创建screen的根对象&…

机器学习与模式识别作业----决策树属性划分计算

文章目录 1.决策树划分原理1.1.特征选择1--信息增益1.2.特征选择2--信息增益比1.3.特征选择3--基尼系数 2.决策树属性划分计算题2.1.信息增益计算2.2.1.属性1的信息增益计算2.2.2.属性2的信息增益计算2.2.3.属性信息增益比较 2.2.信息增益比计算2.3.基尼系数计算 1.决策树划分原…

CentOS yum update

详情内容 CentOS yum update升级命令详解&#xff0c;包括yum check-update&#xff0c;yum update&#xff0c;yum install等升级安装命令详细使用方法。 1.列出所有可更新的软件清单 命令&#xff1a; yum check-update 2.安装所有更新软件 命令&#xff1a; yum updat…

倾斜摄影三维模型的顶层构建的问题分析

倾斜摄影三维模型的顶层构建的问题分析 在构建倾斜摄影超大场景的三维模型时&#xff0c;常见的顶层构建问题可能包括以下几个方面&#xff1a; 1、数据质量问题&#xff1a;倾斜摄影所获取的原始数据可能存在噪点、缺失、重叠或者变形等问题&#xff0c;这些问题会直接影响到…

Vue项目重新部署后,提示用户刷新网页

vue项目部署后&#xff0c;如果用户没刷新页面&#xff0c;浏览器其实加载的还是旧的js文件&#xff0c;如何解决呢&#xff1f; 网上很多方案&#xff1a; 1&#xff1a;websocket监听&#xff0c;需要后台配置 2: 前端header传一个参数&#xff0c;和后台去匹配&#xff0c;…

如果看待程序员不写注释

代码不规范&#xff0c;确实看着蛋疼&#xff0c;尤其命名看不懂时&#xff0c;要去猜测对方代码&#xff0c;可能只有当事人才看得懂。所以一定要规范&#xff0c;在大公司写的不规范&#xff0c;代码走读都过不了&#xff0c;别人会直接怀疑你的能力。 那么&#xff0c;为什…