Swift添加商品到购物车动画

Swift添加商品到购物车动画,第1张

点击cell里+按销察耐钮加到右上角圆图购物车。

在没笑当前路径中追加一条二阶贝塞尔曲线

endPoint:终点

controlPoint:控制点

https://www.jianshu.com/p/b203537f31af

https://www.jianshu.com/p/b590518ce115

Swift里使用autoreleasepool是为啥?什么场景亏春使用?

每次吃饭点外卖的时候(暴露了自己是个死肥宅,手动滑稽),或者在淘宝购物的时候,将商品加入购物车时会有一个很炫酷的动画,如下图饿了么点餐动画:

所以百度了一下前端使用css实现这个效果,然后就自己就照葫芦画瓢的写了一个小小的demo,完全当作学习了一把。

界面上,我是参考了图片上的界面,写的css,然后在美团上面扒的数据。完成后的界面如下图:

开始想着只是做一芦明个简模哗饥单的实现效果,界面上只有div框,按钮什么的这些,反正想着很丑的界面,但是自己看到饿了么这么好看的界面,自己就忍不住模仿着写了一下下。

主要用到的是移动端适配方案:flexible.js + rem的方案

首先获取到页面上所有按钮,然后给按钮添加点击事件,获取到点击当前按钮的位置坐标信旦返息

方案一:使用定位+transition的方式实现

方案二:使用transform + transition的方式实现

其实还可以使用css的animate来实现,只不过由于需要动态计算目标位置的坐标,实现起来比较困难,所以我就没有写,如果目标位置的坐标值固定,那么可以通过animate改变top、left或者translateX、translateY的值来实现这个效果,垂直方向的动画使用贝塞尔曲线的 function-timing 。

初识CSS抛物线动画

https://github.com/HyFun/CSS-Sample-ElemeAnimate

import java.awt.*

import java.awt.event.*

class ShopFrame extends Frame implements ActionListener

{ Label label1,label2,label3,label4

Button button1,button2,button3,button4,button5

TextArea text

Panel panel1,panel2

static float sum=0.0f

ShopFrame(String s)

{ super(s)

setLayout(new BorderLayout())

label1=new Label("面纸:3元",Label.LEFT)

label2=new Label("钢笔:5元",Label.LEFT)

label3=new Label("书伍谈:10元",Label.LEFT)

label4=new Label("袜子:8元",Label.LEFT)

button1=new Button("加入购物车")

button2=new Button("加入购物车")

button3=new Button("加入购物车")

button4=new Button("加入购培贺物车")

button5=new Button("查看购物车")

text=new TextArea("商品有:"配橘派+"\n",5,10)

text.setEditable(false)

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e)

{ System.exit(0)

}

}

)

button1.addActionListener(this)

button2.addActionListener(this)

button3.addActionListener(this)

button4.addActionListener(this)

button5.addActionListener(this)

panel1=new Panel()

panel2=new Panel()

panel1.add(label1)

panel1.add(button1)

panel1.add(label2)

panel1.add(button2)

panel1.add(label3)

panel1.add(button3)

panel1.add(label4)

panel1.add(button4)

panel2.setLayout(new BorderLayout())

panel2.add(button5,BorderLayout.NORTH)

panel2.add(text,BorderLayout.SOUTH)

this.add(panel1,BorderLayout.CENTER)

this.add(panel2,BorderLayout.SOUTH)

setBounds(100,100,350,250)

setVisible(true)

validate()

}

public void actionPerformed(ActionEvent e)

{ if(e.getSource()==button1)

{ text.append("一个面纸、")

sum=sum+3

}

else if(e.getSource()==button2)

{ text.append("一只钢笔、")

sum=sum+5

}

else if(e.getSource()==button3)

{ text.append("一本书、")

sum=sum+10

}

else if(e.getSource()==button4)

{ text.append("一双袜子、")

sum=sum+8

}

else if(e.getSource()==button5)

{

text.append("\n"+"总价为:"+"\n"+sum)

}

}

}

public class Shopping {

public static void main(String[] args) {

new ShopFrame("购物车")

}

}

我没用Swing可能显示不出来你的效果。不满意得话我在给你编一个。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11982563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存