博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快应用-实现添加购物车的动画效果
阅读量:3905 次
发布时间:2019-05-23

本文共 1476 字,大约阅读时间需要 4 分钟。

因为在快应用中,相比web的js有很多方法不支持,所以实现起来比较受限制。这里写了一个简易的效果。未用到贝塞尔曲线,想做的效果更完美的话可以花时间尝试一下。

实现后的效果:

在这里插入图片描述

核心实现代码

template :

style:

script:

export default {
private: {
positonStyle: {
}, //红点样式 showfly: false, //是否展示红点 }, //点击商品 触发动画 clickFood(e) {
var me = this; //显示红点 me.showfly = true; //获取点击商品的位置坐标值 var left = e.changedTouches[0].clientX; var top = e.changedTouches[0].clientY; //设置红点动画的起始位置 me.positonStyle = {
'left': left + "px", 'top': top + "px", } //执行红点动画 var animate_rate = 0; let myFunction = setInterval(() => {
animate_rate += 0.01; animate_rate = animate_rate > 1 ? 1 : animate_rate; var scaleRate = 1; scaleRate = (1 - (animate_rate * 0.5)); if (animate_rate >= 1) {
clearInterval(myFunction); scaleRate = 0; me.addFoodByOften(idx); } // 这里的 坐标140,1300 是左下角 "已选"按钮 的坐标(动画目标位置) var leftdistance = 140 - left; var topdistance = 1300 - top; var newleft = left + (leftdistance * animate_rate); var newtop = top + (topdistance * animate_rate); me.positonStyle = {
'left': newleft + "px", 'top': newtop + "px", 'transform': 'scaleX(' + scaleRate + ')' + ' scaleY(' + scaleRate + ')', } }, 6) }}

不足之处

1.没能实现贝塞尔曲线效果
2.左下角 "已选"按钮 的坐标位置是代码里写固定了,在不同设备上坐标位置会不同从而影响实现效果。应该通过代码获取它在屏幕的坐标位置,可是我没能找到获取它坐标位置的方法。(这个在 web的js中是可以获取到的,然而快应用不行。如果有知道的同学,请不吝赐教,谢谢!)

转载地址:http://fomen.baihongyu.com/

你可能感兴趣的文章
刚开始学python,对脚本语言的一些理解
查看>>
matplotlib进行绘图——散点图
查看>>
matplotlib进行绘图——直方图
查看>>
451. 根据字符出现频率排序
查看>>
467. 环绕字符串中唯一的子字符串
查看>>
468. 验证IP地址
查看>>
486. 预测赢家
查看>>
494. 目标和
查看>>
520. 检测大写字母
查看>>
数据处理和训练模型的技巧
查看>>
vb 中如何做同步 异步?
查看>>
geturl
查看>>
2016年安大校赛(补题)
查看>>
BESTCODER ROUND92 1001.Skip the Class
查看>>
POJ 1661 Help Jimmy
查看>>
百练OJ 2755 神奇的口袋(递归+递推)
查看>>
HDU 1003 Max Sum
查看>>
Code Vs 1014 装箱
查看>>
循环队列,队链的实现
查看>>
HDU 2602 Bone Collector (01背包)
查看>>