Vue3 实现一个简单的方位动画

这是最近遇到的一个有点意思的需求,需要根据后端返回的数据,在一块地图的具体的方位上显示对应位置标识(位置图钉)。不用十分精确,只要能表现出大致的方位即可。

类似下面的效果,有点像游戏里的地图标识。

设计思路

由于不用十分精确,就用最简单的 div + css 来实现位置标识的显示和动画。之后再通过配合背景图片来保证最基础的效果。

方位总共 9 个,东南西北中加上四个角,通过 Grid 布局让其形成 3 * 3 的格子。位置标识只需要根据方位数据出现在对应的 div 中即可。

最后将这些方位用一个 div 包裹起来,只要设置外层 div 的背景即可实现。

Vue3 实现一个简单的方位动画_第1张图片

代码实现和 Demo 演示

梳理清思路后,代码实现就比较简单了。这里用 Vue3 在 CodeSandbox 由于这里无法渲染,放上链接和部分代码。也可以在我的博客上看到 Demo。

Demo 地址:https://codesandbox.io/p/devbox/simple-direction-animation-de...

部分关键代码:





拓展

在这个实现下,要获得不错的效果主要依赖背景图片是否合适,图片大小、边缘留白等都会影响最终的效果。如果是针对不规则的地形组合,可能用 SVG 或 Canvas 来实现更好,但相对的代码复杂度也会上升。

除了方位标识,类似的实现也可以拓展到其他场景,比如车厢内的座位标识,停车场的车位标识等。

本文由mdnice多平台发布

你可能感兴趣的:(程序员vue.js)