前端之简易弹幕实现

本文介绍了如何在前端实现简易弹幕功能。通过HTML布局和JavaScript逻辑,实现了弹幕的显示、发送、清屏以及颜色随机化。弹幕会在页面中央的显示框内流动,用户可以输入新弹幕并发送,同时有清屏功能清除当前屏幕的弹幕而不影响已发送的队列。
摘要由CSDN通过智能技术生成

前端之简易弹幕实现

实现效果:

在这里插入图片描述
打开网页,直接显示一遍本地存储的弹幕(本地存储的主要用于效果查看,可删);
编辑新的弹幕,点击发送,首先显示最新弹幕,再依次显示一遍所有弹幕;
点击清屏,当前显示框div下的所有子元素全部,但已进入发送队列的会继续显示(可认为是bug,但也可以认为不是,毕竟只是清理当前屏幕而已,又不是关闭弹幕 > v <)

实现思路:

  1. html布局:中间一个div显示框,用于装填弹幕消息;下面两个button,一个用于发送新消息,一个用于清屏。
  2. js逻辑:
    a. 发送按钮事件:获取input输入框中的值val,将其传入senddanmu()方法中,同时将val加入消息list队列。
    b. 清屏按钮事件:获取显示框div,用empty()方法清空其下的所有子元素。
    c. senddanmu(val)方法:
    首先,创建一个新的div标签,将传入的弹幕消息val加入进去,主要设置好标签的position(由于要给div标签添加动画,故只能为absolute或fixed或relative),top、right或者left(即确定好div的初始位置)。
    然后,将新创建的div标签加入显示框div中。然后通过访问显示框div新加入的子元素获得新创建的div标签,接着对其添加动画效果。
    d. danmu()方法:每间隔一定时间,依次发送消息队列中的消息。可以用setTimeout()或者setInterval()实现时间间隔,由于它们均是异步操作,并且原理各有不同,有坑,仔细~
    e. randomColor()方法:随机生成六位十六进制rgb颜色,用于给弹幕消息设置不同的颜色。

实现代码

html:

<div class="container-fluid" style="display:flex;flex-direction:column;align-items:center;">       
  <div class="screen" style="position:relative;width:80%;height:400px;border:1px solid #999999;margin-top:30px;">
  //插入弹幕消息
  </div>
  <div style="margin-top:20px;">
  	<input type="text" style="width:400px;height:30px;" placeholder='说点什么...'id="something" autocomplete="off">
  </div>
  <div style="margin-top:10px;">
  	<button style="color:orange;font-size:20px;margin-right:20px;" onClick="saySomething()">发射</button>
	<button style="color:purple;font-size:20px;margin-left:20px" onClick="doClear()">清屏</button>
  </div>
</div>

js:

var t=0;
var list=['1','2','3','4','5','6','7','8'];
var diff=40
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值