使用vue实现弹幕功能

3,953 阅读1分钟

弹幕功能的实现并不难,比较常见的写法是使用JQ操作dom,进行定位移动。之前尝试使用vue实现了弹幕功能,现在将思路和代码整理一下。

弹幕的运动方式是使用vue的transition过渡系统。然后通过before-enter,enter等钩子函数进行运动和状态的切换。

HTML:

将弹幕包裹在transition标签内,并设置钩子函数。其中v-if="showarr[index].barr",控制弹幕的开关,
而transform:tra nslatex(100%)则是将弹幕初始化至屏幕外隐藏。

CSS:

通过enter-active,leave-active這两个属性来设置进入和离开的运动时间

JS:

shouarr数组用来控制弹幕运动,shownum数组则是对弹幕进行标记

钩子函数可以通过el获取当前运动的对象,在beforeEnter(运动开始前)中为弹幕添加标记。
Enter(运动开始时)中设置弹幕运动的终点位置。
afterEnter(运动结束时)中将showarr[el.index].barr设置为false触发隐藏动画,将弹幕复位至初始位置。
afterleave(隐藏运动结束时)showarr[el.index].barr设置为true,让弹幕自动循环运动,达到无限运动的目的。

这只是简单弹幕的实现,还有很多可以完善的地方,比如可以根据不同弹幕长度设置结束位置,使弹幕运动速度不同完善视觉效果。