html在线弹幕,HTML5 弹幕
网上无意中看到一段优秀的弹幕代码,做了一个H5弹幕
预览地址:戳这里
弹幕
var mybarrage = (function($) {
return {
create: function(config){
var style = '';
style += config.area.left ? ('left:'+ config.area.left+'px;'):'';
//style += config.area.right ? ('right:'+ config.area.right+'px;'):'';
//style += config.area.top ? ('top:'+ config.area.top+';'):'';
//style += 'bottom:'+ config.area.bottomNum +'%;';
$("#con").append('
//new一个弹幕管理器
var manage = new mybarrage.init.BarrageManager();
manage.load();
},
init: function(){
var json = [
{ id: 2, fromUserName: '李寻欢', content: "梨花剑", fromUserIcon: "https://www.baidu.com/favicon.ico" },
{ id: 3, fromUserName: '黄药师', content: "轻功", fromUserIcon: "https://www.baidu.com/favicon.ico" },
{ id: 4, fromUserName: '周杰伦', content: "唱歌", fromUserIcon: "https://www.baidu.com/favicon.ico" },
{ id: 5, fromUserName: '洪金宝', content: "功夫", fromUserIcon: "https://www.baidu.com/favicon.ico" }
]
//弹幕管理器
function BarrageManager (options) {
this.opts = {
url : [],
loadDelay : 5000 , // 轮询时间间隔
}
$.extend( this.opts , options);
//new一个弹幕队列集合
this.bc = new BarrageCollection();
}
//弹幕管理器加载数据
BarrageManager.prototype.load = function (data) {
var self = this ;
if(data == null){
data = self.opts.url;
}
for(var i = 0 ; i < data.length ; i++) {
//所有初始数据转化成弹幕对象,放进弹幕队列集合中
self.bc.add(new Barrage({
id:data[i].id,
name:data[i].fromUserName,
text:data[i].content,
icon:data[i].fromUserIcon
}));
}
//弹幕管理器开始工作
self.loop();
}
// 弹幕管理器工作
BarrageManager.prototype.loop = function () {
var len = this.bc.mq.length , self = this ;
while (len--) {
// 弹幕队列集合
this.bc.mq[len].start(this.bc , len);
}
// setTimeout(function () {
// self.load();
// } , this.opts.loadDelay);
}
function BarrageCollection () {
this.mq = [] ;
}
BarrageCollection.prototype.add = function (barrage) {
this.mq.push(barrage);
}
//弹幕队列集合删除弹幕
BarrageCollection.prototype.remove = function (barrage) {
var index = this.mq.findIndex(function (item) {
return barrage.opts.id == item.opts.id ;
});
if(index != -1) {
this.mq.splice(index , 1);
}
barrage.opts.$el.remove();
}
function Barrage (options) {
this.opts = {
$el : null ,
left : 0 ,
bgColor : [Math.floor(Math.random()*255),Math.floor(Math.random()*255),Math.floor(Math.random()*255)] ,
offset : 1000 , // 使弹幕完全移出屏幕外
duration : 10000 , // 弹幕从右往左移动的时间
delayTime : 1000 , // 弹幕延迟移动时间
};
$.extend( this.opts , options);
this.init();
}
Barrage.prototype.init = function () {
//this.opts.$el = $(""+this.opts.name+":"+this.opts.text+"");
this.opts.$el = $(""+this.opts.text+"");
var top = Math.ceil(Math.random() * 10 );
this.opts.$el.css({
top:top * 40 +'px',
//backgroundColor:"rgb("+this.opts.bgColor.join(",")+")",
color:"rgb("+this.opts.bgColor.join(",")+")",
//right:0,
position:'absolute'
});
var delay = Math.ceil(Math.random()*10);
this.opts.delayTime *= Math.abs(delay - 5);
//var dur = Math.ceil(Math.random() * 10);
// this.opts.duration += dur * 1000 ;
$('#barrage-wrapper').append(this.opts.$el);
this.opts.left = -this.opts.$el.width() - this.opts.offset ;
}
//弹幕开始移动
Barrage.prototype.start = function (bc , index) {
var self = this ;
setTimeout(function () {
self.move(bc);
}, this.opts.delayTime);
}
//弹幕移动
Barrage.prototype.move = function (bc) {
var self = this ;
// 弹幕队列集合删除这个弹幕
this.opts.$el.animate({left:'-150%'},this.opts.duration ,"linear", function () { bc.remove(self);});
}
return {
BarrageManager: BarrageManager,
BarrageCollection: BarrageCollection,
Barrage: Barrage
}
}()
}
})($)
var width = document.documentElement.offsetWidth || document.documentElement.offsetWidth||window.innerWidth
var BarrageManager = mybarrage.init.BarrageManager;
var Barrage = mybarrage.init.Barrage;
function submit(){
let text = $('#custmerEnter').val();
let manage = new BarrageManager();
manage.load();
manage.bc.add(new Barrage({
id: +new Date(),
name: '张三风',
text: text,
icon: 'https://pic4.zhimg.com/da8e974dc_xs.jpg'
}));
manage.loop();
}
mybarrage.create({
area:{
left: width,
//right: -10,
top: '5%'
}
})
提交
html在线弹幕,HTML5 弹幕相关推荐
- web player html5源码,GitHub - WEBHH/DanmuPlayer: Html5弹幕视频播放器插件
DanmuPlayer ##Html5弹幕视频播放器插件 Danmmu Player是一个具备弹幕功能的Html5视频播放器. 具备弹幕视频播放,接受用户发送彩色弹幕,实时调解弹幕显示效果等功能. D ...
- html弹幕播放器源码,高性能HTML5弹幕播放器 Moe2_player
软件介绍 Moe2_player是一款高性能HTML5弹幕播放器. 特点:完全基于html5,移动设备友好,(iphone需要添加到桌面作为webapp方可观看弹幕) 性能强大,在多倍于B站最大弹幕覆 ...
- 直播弹幕 html5,一种基于HTML5的弹幕播放器及其方法与流程
本发明涉及互联网技术领域,具体涉及一种基于HTML5的弹幕播放器及其方法. 背景技术: 弹幕是指一种在观看视频时,大量以字幕(有且不限于文字和图片)形式呈现的评论与视频同在一个画面的现象.在视频上方大 ...
- 使用css绘制弹幕,实现弹幕效果的方法总结(css和canvas)
这篇文章主要介绍了关于实现弹幕效果的方法总结(css和canvas) ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 之前在一个移动端的抽奖页面中,在抽奖结果的展示窗口需要弹幕轮播显示 ...
- 微信对话在线生成器html5源码
微信对话在线生成器html5源码的软件特点是: 一:操作简单,下载源码后双击 index.html 即可运行,不需要服务器 二:可以设置外观设置,手机状态栏,包括电量.时间.标题.背景等信息 三:可以 ...
- python在线学习直播-一对多直播系统开发,百万用户在线,直播弹幕系统是如何实现的?...
2020年因为受到疫情的影响,各种电商直播纷纷涌入大家的视野,很多商家都通过直播的方式来售卖自己的产品.直播弹幕是直播系统的核心功能之一.如何迅速作出一个有很好扩展性的弹幕系统?如何应对业务迅速发展? ...
- html5播放器插件手机版,Html5弹幕视频播放器插件
插件描述:Danmmu Player是一个具备弹幕功能的Html5视频播放器. 具备弹幕视频播放,接受用户发送彩色弹幕,实时调解弹幕显示效果等功能. Danmmu Player意在使开发者能便捷的在网 ...
- Html5弹幕视频播放器插件Danmu介绍
原文地址:http://www.jq22.com/jquery-info2611 插件描述:Danmu Player是一个具备弹幕功能的Html5视频播放器. 具备弹幕视频播放,接受用户发送彩色弹幕, ...
- HTML5弹幕式滚动评论留言墙
我们不生产代码,我们只是大数据的搬运工.为大家找到一个经典版并且改动空间很大的一个弹幕式滚动评论留言墙的代码,基本页面如下: 全部文件链接(百度云盘):https://pan.baidu.com/s/ ...
最新文章
- jetson nano 用 tensorrt 运行 nanodet(kitti数据集)
- 你有哪些 Deep learning(RNN、CNN)调参的经验?
- 四个大点,搞懂 Redis 到底快在哪里?
- 为什么在释放锁的时候是从 tail 进行扫描
- mysql5717开发设置怎么调回来_华为手机这几个默认设置,一定要关闭,再也不卡顿...
- python多个判断条件体重_python基础之如何用if语句判断多个条件?
- Windows域策略 统一设置本地管理员密码 【全域策略生效】
- python爬取拉勾网_python爬虫—爬取拉钩网
- dropify插件的字符串
- visual studio 2015 比较代码差异的几种方法
- 如何用计算机模拟光的传播,菲涅尔计算全息干涉图的制作与模拟再现.doc
- My 10 favorite APPs
- vue富媒体编辑器组件:vue-wangeditor的使用
- 华为交换机不同VLAN间通信的两种主流解决方案,一分钟快速掌握
- 六大云计算厂商南山论剑,收下这封英雄帖!
- 凌晨 计算机博士,凌晨三点,被我的博士老婆喊起来写程序……
- C#技术交流④群正式开建,诚邀各路大佬莅临指导
- 怎么把pdf转换成excel
- 浏览器解析jsx_React 初窥:JSX 详解
- 第一天-2.安装vmware虚拟机kali系统