在没笑当前路径中追加一条二阶贝塞尔曲线
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可能显示不出来你的效果。不满意得话我在给你编一个。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)