javascript实现视频弹幕效果(两个版本)


Posted in Javascript onNovember 28, 2019

本文实例为大家分享了javascript实现视频弹幕效果的具体代码,供大家参考,具体内容如下

基础版本

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="utf-8">
 <style>
 * {
 margin: 0;
 padding: 0;
 }

 .dm {
 width: 800px;
 height: 600px;
 background-color: blue;
 margin: 0 auto;
 }

 .box {
 height: 500px;
 background-color: #000;
 position: relative;
 overflow: hidden;
 }

 video {
 width: 100%;
 height: 100%;
 }

 .info {
 text-align: center;
 margin-top: 20px;
 }

 input[type=text] {
 width: 500px;
 height: 50px;
 }

 input[type=button] {
 height: 50px;
 width: 100px;

 }

 span {
 position: absolute;
 /* 文本强制不换行 */
 white-space: nowrap;
 font: bold 18px '微软雅黑';
 }
 </style>

</head>

<body>
 <div class="dm">
 <div class="box">
 <video src="m.mp4" controls></video>
 </div>
 <div class="info">
 <input type="text" maxlength="30" id="txt">
 <input type="button" value="发射" id="emit">
 </div>
 </div>
 <script src="jquery-1.12.4.js"></script>
 <script>
 // 0. 用一个数组保存一组颜色值
 var colors = ['red', 'green', 'yellow', '#fff', 'pink', 'blue'];
 // 1. 给发射按钮注册点击事件
 $('#emit').click(function () {
 // 2. 获取文本框的内容
 var v = $('#txt').val();
 // 3. 创建span标签,并设置内容,设置样式,最后追加到类名为box的div中
 var $span = $('<span></span>');
 $span.text(v)
 .css({
  left: $('.box').width(),
  top: parseInt(Math.random() * $('.box').height()),
  color: colors[parseInt(Math.random() * colors.length)]
 }).appendTo('.box');
 // 4. 让当前的span产生动画 left 为-span的宽度
 $span.animate({
 left: -1 * $span.width()
 }, 6000, 'linear', function () {
 // 当动画结束后,删除该元素
 $span.remove();
 })
 });
 </script>

</body>

</html>

加强版本

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="utf-8">
 <style>
 * {
 margin: 0;
 padding: 0;
 }

 .dm {
 width: 800px;
 height: 600px;
 background-color: blue;
 margin: 0 auto;
 }

 .box {
 height: 500px;
 background-color: #000;
 position: relative;
 overflow: hidden;
 }

 video {
 width: 100%;
 height: 100%;
 }

 .info {
 text-align: center;
 margin-top: 20px;
 }

 input[type=text] {
 width: 500px;
 height: 50px;
 }

 input[type=button] {
 height: 50px;
 width: 100px;

 }

 span {
 position: absolute;
 /* 文本强制不换行 */
 white-space: nowrap;
 font: bold 18px '微软雅黑';
 }
 </style>

</head>

<body>
 <div class="dm">
 <div class="box">
 <!-- controls 如果出现该属性,则向用户显示控件,比如播放按钮。 -->
 <video src="m.mp4" controls></video>
 </div>
 <div class="info">
 <input type="radio" value="" id="ban" name="1">精简</input>
 <input type="radio" value="" id="vip" name="1">VIP尊享</input>
 <input type="text" maxlength="30" id="txt">
 <input type="button" value="发射" id="emit">
 </div>
 </div>
 <script src="jquery-1.12.4.js"></script>
 <script>
 // 0. 用一个数组保存一组颜色值
 var colors = ['red', 'green', 'yellow', '#fff', 'pink', 'blue'];

 //定义一个变量,定义其他样式的
 b = 0
 $('#ban').click(function () {
 b = 1;
 });
 $('#vip').click(function () {
 b = 2;
 });




 // 1. 给发射按钮注册点击事件
 $('#emit').click(function () {
 // 2. 获取文本框的内容
 var v = $('#txt').val();
 // 3. 创建span标签,并设置内容,设置样式,最后追加到类名为box的div中
 var $span = $('<span></span>');

 //定义CSS样式,让它是一个数组形式表现
 css = [{
  "left": $('.box').width(),
  "top": parseInt(Math.random() * $('.box').height()),
  "color": colors[parseInt(Math.random() * colors.length)]
 },
 {
  "left": $('.box').width(),
  "top": parseInt(Math.random() * ($('.box').height() / 2)),
  "color": colors[parseInt(Math.random() * colors.length)]
 },
 {
  "left": $('.box').width(),
  "top": parseInt(Math.random() * $('.box').height()),
  "color": "yellow",
  "fontSize": 50,
  "fontFamily": "楷体"
 }
 ]
 //看看能不能打印出数组中的东西
 // console.log(abc[1])

 $span.text(v)
 .css(css[b])
 .appendTo('.box');

 // 4. 让当前的span产生动画 left 为-span的宽度

 //打印出文本长度
 // console.log(v.length)

 $span.animate({
  left: -1 * $span.width()
 }, (30 - v.length) * 333, 'linear',
 function () {
  // 当动画结束后,删除该元素
  $span.remove();
 })
 });
 </script>

</body>

</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript实现动态增加文件域表单
Feb 12 Javascript
jquery validate使用攻略 第四步
Jul 01 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
Feb 04 Javascript
用jquery等比例控制图片宽高的具体实现
Jan 28 Javascript
angularjs指令中的compile与link函数详解
Dec 06 Javascript
浅析Javascript中bind()方法的使用与实现
Apr 29 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
May 21 Javascript
Angularjs cookie 操作实例详解
Sep 27 Javascript
p5.js入门教程之图片加载
Mar 20 Javascript
如何从头实现一个node.js的koa框架
Jun 17 Javascript
JS Math对象与Math方法实例小结
Jul 05 Javascript
js单线程的本质 Event Loop解析
Oct 29 Javascript
javascript实现弹幕墙效果
Nov 28 #Javascript
jquery实现直播弹幕效果
Nov 28 #jQuery
jQuery实现简单弹幕效果
Nov 28 #jQuery
微信小程序事件流原理解析
Nov 27 #Javascript
JS实现简单省市二级联动
Nov 27 #Javascript
Angular value与ngValue区别详解
Nov 27 #Javascript
原生js实现二级联动菜单
Nov 27 #Javascript
You might like
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
PHP中的魔术方法总结和使用实例
2015/05/11 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
JavaScript 格式字符串的应用
2010/03/29 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
JS简单随机数生成方法
2016/09/05 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
基于JS实现的随机数字抽签实例
2016/12/08 Javascript
Angular2 路由问题修复详解
2017/03/01 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
原生js 封装get ,post, delete 请求的实例
2017/08/11 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
Vue 图片压缩并上传至服务器功能
2020/01/15 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
python根据距离和时长计算配速示例
2014/02/16 Python
python fabric使用笔记
2015/05/09 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
python的pdb调试命令的命令整理及实例
2017/07/12 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
python pcm音频添加头转成Wav格式文件的方法
2019/01/09 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
关于Flask项目无法使用公网IP访问的解决方式
2019/11/19 Python
Python concurrent.futures模块使用实例
2019/12/24 Python
Python中logging日志库实例详解
2020/02/19 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
彩色的非洲教学反思
2014/02/18 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
2015年“我们的节日·重阳节”活动总结
2015/07/29 职场文书
2016年教师新年寄语
2015/08/18 职场文书
quickjs 封装 JavaScript 沙箱详情
2021/11/02 Javascript