信封弹出特效(可能是从业以来最复杂的效果)

作为一个前端,也是希望可以实现各种炫酷的效果的,比如3D效果,但是一直供职于toB的公司,实现炫酷效果的机会很少,这个信封弹出可能是从业以来实现的最复杂的一个效果。设计给的效果如下:

刚开始心里一慌,先把其他表单,表格,弹窗等简单的实现完以后,再来冷静的分析了一波。其实设计给的效果和日常我们打开信封的动作是一样的,所以不存在理解的上的成本。将mp4慢放后分析后,发现信封的上,下,前 以及信纸都会动,还有信封上的徽章和button都有渐变和移动效果,所以需要将信封的拆成各个部分,分别做绝对定位。

动画

  • 点击”敬启”后高亮,并向上移动10px
  • 整个信封向下平移100px
  • “敬启”消失,滴滴云logo消失
  • 信封上半部沿Z轴向外旋转180度,同时z-index下降,信封正面慢慢向下
  • 信封下半部分沿Z轴转动小幅度
  • 信纸弹出,”随便看看”淡入

还有一个点需要注意,刚开始是信封上边压着信封下边,一起压着信纸,但是弹开后信纸需要压在信封上面。所以就需要z-index的变化。

因为信封是有多个图片构成,所以首次展示会出现展示慢的情况,如下图,信纸先于信封展示出来,不符合预期,需要优化。

优化思路:

  • 信纸内元素有文案和icon,而信封图片较大,所以一方面先将信纸隐藏,信封打开前再展示
  • 信封图片有1.1M,压缩之
  • 大图片存放cdn

预览

效果链接:https://guguji5.github.io/envelop-popup/