uniapp - animation动画数组无效

问题描述: 在开发uniapp时发现,在使用数组来存储动画的场景下动画总是不生效

通过多次尝试发现
1.  在方法中临时创建的animation实例导出的数据不是reactive的
2.  数组并没有监控到元素对象的变动

解决方法

  1. 把animation实例定义在data中, 在onload中初始化,在方法中使用,可以解决这个问题
    猜想原因可能是在data中的animation实例会被vue监控,从而触发animation实例导出数据的监控。 后面有待确认其原因
export default {
		data() {
			return {
				ani: null,
			}
		},
		onLoad() {
			this.ani = uni.createAnimation()
		},

		methods: {
			praise(index) {
				this.praiseAnimation.splice(index, 1, this.ani.opacity(1).translateY(-80).scale(1.5).step().export())
			}
		}
	}
  1. 因为javascript的原因,数组某个位置的元素改变并不会被数组监控到,解决方法就是使用数组那些已经被监控的方法
		praise(index) {
			this.praiseAnimation.splice(index, 1, uni.createAnimation().opacity(1).translateY(-80).scale(1.5).step().export())
		}

参考:https://ask.dcloud.net.cn/question/89860

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值