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

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

思路:
  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.lryc.cn/news/193153.html

相关文章:

  • win10取消ie浏览器自动跳转edge浏览器
  • 目录启示:使用 use 关键字为命名空间内的元素建立非限定名称
  • Go语言介绍与安装
  • 常用傅里叶变换表
  • 生活中的视音频技术
  • 一种用于肽图分析的烷化剂,Desthiobiotin-Iodoacetamide
  • 【(数据结构) —— 顺序表的应用-通讯录的实现】
  • macbook磁盘清理免费教程分享
  • cartographer_ros数据加载与处理
  • 设计模式-7种结构型模式
  • 华为李鹏:加速5G商业正循环,拥抱更繁荣的5.5G(5G-A)
  • Marin说PCB之CoilcraftBourns POC 电感的性能对比
  • 聊聊Maven的依赖传递、依赖管理、依赖作用域
  • centos6/7 SOCKS5 堆溢出漏洞修复(RPM方式)curl 8.4 CVE-2023-38545 CVE-2023-38546
  • C#,数值计算——数据建模Proposal的计算方法与源程序
  • 如何使用命令生成动态链接库.dll文件(保姆级教学)
  • Qt之模块介绍
  • Socks5代理和代理IP
  • 计算机指令、机器码
  • MyLife - Docker安装Consul
  • Leetcode刷题笔记--Hot61-70
  • python特别篇—github基本操作手册
  • tiktok直播websocket序列化与反序列化
  • 微信picker弹出之后 , 背景变成灰色是怎么做的
  • 通用考勤后台管理系统
  • LeetCode75——Day5
  • 面向C++模块的开源 IFC SDK
  • Docker开启远程访问+idea配置docker+dockerfile发布java项目
  • 基于nodejs+vue教学辅助管理系统
  • Qt 子线程中无限递归的信号槽导致主线程槽失效的原因和解决办法