调皮的音响控制键

看一个微信推送文,发现了一堆脑洞大开的程序员音量键设计图,特别为这种发射式的所折倒,于是磨拳霍霍开工了,最后可喜可贺的获得了两个小成品~

先让我急不可耐的展示一下:
一号 —— 豌豆发送式(发射感没有原作好,有时间要拜读一下)

二号 —— 清风缓送式(这是一开始没看清动图的真意,自己创造出来的变形版,效果却意外满意)

其实没啥特别技术,就是算好x和y位移,用setInterval控制着translate变化。

但是这里面也有几处可以说道说道:

  1. 怎么成为一个组件?
    之前看了组件化思维的推文后就很自然的想到了这个问题,我对这个音量键如何组件化的思考结论是:要解决2个问题,一个是样式上的独立性;另一个是数据的内外传输问题。
    样式方面,我以volumeWrapper的font-size为基准进行布局,也就是以后使用时只要更改字体大小,就能实现音量键的大小缩放,不过可能有个取值范围,约莫在30px以内可以hold住吧……
    数据方面,我百度了自己制作的音量键如何去控制系统音量,然而没有找到满意的答案,所以在数据传输这方面,我是非常欠缺的,没有进行任何设计

  2. 为什么这是个设计师不能接受的黑设计?
    做动画的时候我就发现了,因为我不能均匀的调节音量大小的变化……这里面应该是涉及了抛物线的数学问题,我也尽我可能的去做了均衡(使用分段函数),但是这方面比较渣,其实还是不太平均的。

  3. 豌豆发射感较差
    这里面应该还是数学问题,啊,现阶段我真的尽力了,甚至做了前期增幅步长较大、后期增幅较小的设置,然而还是没有那种猛地喷出感……真的是需要去拜读一下原码!

最后,还是非常痛快的一次制作,哈哈,虽然做完后感觉自己被掏空。然后,还是看到了很多对基础的需求→我的欠缺,所以……继续努力吧~

代码:https://github.com/Weixy1210/volume-control-animation

致谢:“设计请假了,程序员你做个图顶一下”