今天逛论坛看到一位大佬去百度面试,10分钟用原生JS写了一个简单的斗鱼直播弹幕效果,成功拿到了offer,分享给头条上的小伙伴学习,因为本身还是挺简单的,对于刚学的小伙伴也可以自己练习下,毕竟也是一个小案例嘛,看看大家能不能够轻松的写出这个小东西吧,下面开始分享了
弹幕时近几年新兴的一种技术,接下来我要展示的就是怎么实现类似弹幕的效果。
先贴下效果图:
说是效果,要拿出去用肯定是不行的。
先说一下是怎么样的实现方法。弹幕肯定是出现在屏幕上,所以我们暂时把出现弹幕的窗口称为背景。
弹幕肯定尽量不能重叠在一起,所以我把整个弹幕出现的背景划分为几块,如下图:
什么意思呢?就是这里有5条弹道,弹幕就是出现在这5条弹道之间的一条。具体划多少条弹道,每条弹道的宽度要看你的背景和你自己的设计了。
好了,弹道有了,怎么创建弹幕呢?这里我们用到了appendChild方法,每个弹幕的内容都是随机的。然后我固定了弹幕的数量,并且加了定时器,
当弹幕到达左边时,弹幕内容再次随机,输入框发送的弹幕出现一次后,将内容加入到预备词库中,并将此弹幕删除。防止弹幕过多报错。
同时每个弹幕出现的时机肯定不能相同,所以我在每个弹幕最开始出现时加了延迟。
大概的设计就是这样了,这里还是总结一下存在的问题:
1.弹幕有时会出现同时出现在同一个弹道上,甚至重叠,暂时还没找到原因。
2.当输入框连续多次发送弹幕时,可能会因为弹道不够出现意外的情况。
3.与真正的弹幕相比,只是简易版的,功能单一。
代码贴上:
欢迎关注公众号:“前端逸辰”,获取更多前端知识精粹和学习社群:
回复 学习路径,将获取笔者多年从业经验的前端学习路径的思维导图
Vue、React、小程序、Node
网友评论