基于CommentCoreLibrary简单的弹幕实现
本文地址:http://www.cnblogs.com/liaoyu/p/ccl-demo.html
实现基于开源的 CommentCoreLibrary
最近有需求要实现一个简单的评论弹幕实现,通过简单的对 CommentCoreLibrary 的修改,达到下面的效果: 示例地址

html结构
<div class="feng-ccl-panel">
<div class="abp" id="feng-player">
<div id="commentCanvas" class="container"></div>
</div>
</div>
再引入CommentCoreLibrary.js和style.css
js实现
在dom加载完成后, 开始初始化ccl
document.addEventListener('DOMContentLoaded', function(){
var CM = new CommentManager(document.getElementById('commentCanvas'));
CM.init();
// 启动播放弹幕(在未启动状态下弹幕不会移动)
CM.start();
// 开放 CM 对象到全局这样就可以在 console 终端里操控
window.CM = CM;
// 弹幕播放
cmtController();
} ,false);
再数据加载完成后,发送弹幕即可
function getCmtDataList() {
var cmtArr = [];
// 可以使用jsonp获取服务器的字幕数据
/*$.ajax({
type : 'GET',
url : 'http://192.168.9.67/test.php',
dataType : 'jsonp',
data : {sid : 100},
success : function(data) {
cmtArr = data.dataList;
if (cmtArr && cmtArr.length > 0) {
sendMsg(cmtArr);
}
}
});*/
// 测试数据
cmtArr = [
{"text":"大家期待什么新品啊", "bgColor":"#424448", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"会有什么惊喜吗?", "bgColor":"#424448", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"等待中。。", "bgColor":"#23b28b", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"会有什么新产品呢?", "bgColor":"#424448", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"定时执行", "bgColor":"#23b28b", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"1123333446红咖喱的非农房价", "bgColor":"#ec4262", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"测试接口发评论00", "bgColor":"#ec4262", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"测试接口发评论00", "bgColor":"#3dbbc0", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"啊啊啊啊啊啊啊哦哦哦诶IEIE恩家报表出具", "bgColor":"#ec4262", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"},
{"text":"的方式的方法反反复复反复反复", "bgColor":"#23b28b", "icon":"http://face.weiphone.net/data/avatar/000/15/31/95_avatar_big.jpg"}
]
sendMsg(cmtArr);
}
function sendMsg(cmtArr) {
for (var i=0; i<cmtArr.length; i++) {
var cmtItem = cmtArr[i],
iconStr = '';
if (cmtItem.icon && cmtItem.icon.length > 0) {
iconStr = '<span class="icon"><img src="'+ cmtItem.icon +'"></span>';
}
// 字幕的节点内容
cmtItem.text = iconStr + cmtItem.text;
cmtItem.mode = 1;
cmtItem.dur = Math.floor(Math.random()*4000 + 4000);
CM.send(cmtItem);
}
}
function cmtController() {
getCmtDataList();
setTimeout(function(){
cmtController();
}, 5000);
}
基于CommentCoreLibrary简单的弹幕实现的更多相关文章
- 基于Bootstrap简单实用的tags标签插件
http://www.htmleaf.com/jQuery/ jQuery之家 自由分享jQuery.html5和css3的插件库 基于Bootstrap简单实用的tags标签插件
- 基于最简单的FFmpeg包封过程:视频和音频分配器启动(demuxer-simple)
===================================================== 基于最简单的FFmpeg封装工艺的系列文章上市: 最简单的基于FFmpeg的封装格式处理:视 ...
- 基于最简单的FFmpeg采样读取内存读写:存储转
===================================================== 基于最简单的FFmpeg样品系列读写内存列表: 最简单的基于FFmpeg的内存读写的样例:内 ...
- 基于最简单的FFmpeg的AVDevice抽样(屏幕录制)
=====================================================基于最简单的FFmpeg的AVDevice样品文章: 最简单的基于FFmpeg的AVDevic ...
- 基于最简单的FFmpeg采样读取内存读写:内存玩家
===================================================== 基于最简单的FFmpeg样品系列读写内存列表: 最简单的基于FFmpeg的内存读写的样例:内 ...
- 基于Jquery 简单实用的弹出提示框
基于Jquery 简单实用的弹出提示框 引言: 原生的 alert 样子看起来很粗暴,网上也有一大堆相关的插件,但是基本上都是大而全,仅仅几句话可以实现的东西,可能要引入好几十k的文件,所以话了点时间 ...
- 基于PHP——简单的WSDL的创建(WSDL篇)
1.建立WSDL文件 建立WSDL的工具很多,eclipse.zendstudio.vs都可以,我个人建议自己写,熟悉结构,另外自动工具对xml schame类型支持在类型中可能会报错. 下 ...
- Python 基于pykafka简单实现KAFKA消费者
基于pykafka简单实现KAFKA消费者 By: 授客 QQ:1033553122 1.测试环境 python 3.4 zookeeper-3.4.13.tar.gz 下载地址1 ...
- JavaScript实现简单的弹幕效果实例分析
不知大家有没有感受到,弹幕又是另一出好戏!! 不过我个人还是比较排斥看电视的时候被出来的弹幕打扰.今天我们来写一个简单的弹幕.简单到什么程度呢?看下效果: 由图可以看出,我们的呆毛html结构确实是非 ...
随机推荐
- jsp(一) : servlet基础
1.客户 servlet容器 servlet 2.实现接口 #1.接口:servlet : constrontor .init().service.destroy ...
- JavaWeb_数据传输_原
本节目录: 1.如何从Servlet向JSP传送数据:(setAtrribute和getAtrribute) 2.jsp如何输入表达数据以及传数据到servlet(FormAction去向和Inpu ...
- SAX方式解析XML文件实例
books.XML文件: 书籍book.java实体类: public class Book { private String id; private String name; private Str ...
- iOS创建UUID
- (NSString *)getUUID { CFUUIDRef uuidObj = CFUUIDCreate(nil); //create a new UUID NSString * uuidSt ...
- .Net规则引擎Biztalk,Workflow和CKRule的比较
微软的规则引擎 很多朋友会问,.Net平台有没有规则引擎?像Java就有很多的规则引擎,Drools,ILog都做得非常好,但.Net好像还没有哦.很多知道规则引擎,但不知道.Net的朋友都烦这个 ...
- InstallShield : 如何查找编译后的 Merge Module存放路径
工程菜单栏中依次选择 Tools ---> Options… ,选择 Merge Modules tab 页,如下,就会看到Merge Module的存放路径,也可以根据需求修改. Merge ...
- OpenJudge / Poj 1044 Date bugs C++
链接地址: Poj:http://poj.org/problem?id=1044 OpenJudge:http://bailian.openjudge.cn/practice/1044/ 题目: 总时 ...
- 第12条:考虑实现Comparable接口
CompareTo方法没有在Object中声明,它是Comparable接口中的唯一的方法,不但允许进行简单的等同性比较,而且允许执行顺序比较.类实现了Comparable接口,就表明它的实例具有内在 ...
- java 泛型 窜讲
一.为什么使用泛型 复用性:泛型的本质就是参数化类型,因而使用编写的泛型代码可以被许多不同类型的对象所复用. 安全性:在对类型Object引用的参数操作时,往往需要进行显式的强制类 ...
- Yii 获取验证码与Yii常用的URL
$this->createAction('captcha')->getVerifyCode(); //获取当前验证码的值 当前页面url echo Yii::app()->requ ...