产品经理:你能不能让词云动起来?

前端三元同学

共 7900字,需浏览 16分钟

 ·

2021-12-16 06:19

☀️ 前言

  • 事情是这样的,前段时间拿到公司的数据大屏原型图让我一天内把一整个页面做出来。
  • 简单看了看,就是一个3840 * 1840的大屏然后几个列表几个图例看起来也没有多复杂。
  • 唰!很快啊加了一会班把整个页面调整好了信心十足拿给产品经理看。
  • 产品经理皱了皱眉头:你这词云不会动啊??

🌤️ 之前的效果

  • 听到这话我发现情况不对,我寻思着这原型图的词云也看不出他要没要求我动啊,而且明明我做的是会动的呀!

🎢 关系图

  • 一开始我用的是echartsgraph关系图,这种图的特点是一开始会因为每个词的斥力会互相分开,在一开始会有一些动态效果,但是因为力引导布局会在多次迭代后才会稳定,所以到后面就不会继续运动了。

  • 我:是吧我没骗人吧?确实是会动的。

  • 产品经理:这样效果不好,没有「科技感」,而且我要字体大小每个都不同的,明天要拿给客户看一版,比较急,算了你别做动的了就让他词云填满然后每个词的大小要不一样。

🎠 词云图

  • 做不动词云的那不就简单了,直接使用echartswordCloud图啊,直接唰唰配置一下就好了。

  • 产品经理:客户看完了,整体还不错,但是词云这块我还是想它动起来,这样吧,你想个办法整整。

🚄 自己手写

  • 对于这个词云,我一开始真的是死脑筋了,认定要用echarts来做,但实际上wordCloud官网也没有提供资料了,好像确实也没有办法让它动起来。
  • 思量片刻....等会,词云要不同大小不同颜色然后要在区域内随机移动,既然我不熟canvas,那我是不是可以用jscss来写一个2d的呢,说白了就是一个词语在一个容器内随机运动然后每个词语都动起来撒,好像能行....开干。

🚅 ToDoList

  • [ ] 准备容器和需要的配置项
  • [ ] 生成所有静态词云
  • [ ] 让词云动起来

🚈 Just Do It

  • 由于我这边的技术栈是vue 2.x的所以接下来会用vue 2.x的语法来分享,但实际上换成原生js也没有什么难度,相信大家可以接受的。

🚎 准备容器和需要的配置项

  • 首先建立一个容器来包裹我们要装的词云,我们接下来的所有操作都围绕这个容器进行。