弹幕组件

让普通的web页面拥有像视频一样的弹幕体验。

支持多终端(PC、移动端)web页面;支持静态固定的弹幕数据、后台动态弹幕数据;

快速上手

<!-- 引入依赖,pc端弹幕引入jQuery,移动端弹幕引入Zepto -->
<!-- <script src="//game.gtimg.cn/images/js/jquery/jquery-1.11.3.min.js"></script> -->
<!-- <script src="//game.gtimg.cn/images/js/zepto/zepto.min.js"></script> -->

<!-- 引入弹幕组件 -->
<script src="//game.gtimg.cn/images/js/su/danMu.beta.min.js"></script> 

<script>
//实例化弹幕
var dm = new danMu({
    device:'m',
    stage: $(".danmustage"),
    comments: danmuData,
    danMuHtml: "<span>{comment}</span>",
    colors: ["#fff","#00ccff","#ff0000","#00ff00","#fef500"],
    flyTime:7000, 
    timeInterval:1200,
    randomSort:true
});
</script>

DEMO

参数说明

device

类型:string

默认值:'pc'

设备是pc端还是移动端,'pc'代表pc端弹幕,'m'代表移动端弹幕

stage

类型:object

默认值:$(".danmustage")

弹幕舞台/容器

comments

类型:array

默认值:[]

弹幕初始数据

colors

类型:array

默认值:['#fff']

弹幕随机颜色数组

danMuHtml

类型:string

默认值:''

普通弹幕html模板;{userId}代表弹幕所属用户唯一标识属性值;{comment}代表弹幕内容;该html模板中支持出现多个{userId}和{comment}

alwaysDanMuHtml

类型:string | array

默认值:''

一直在舞台垂直居中位置出现的弹幕html模板(例如上面第二个demo的“TGideas弹幕来袭”);不设置或设置为''代表没有

danMuClassName

类型:string

默认值:'danmu'

普通弹幕className

myDanMuClassName

类型:string

默认值:'mydanmu'

我发送的普通弹幕className

alwaysDanMuClassName

类型:string

默认值:'alwaysdanmu'

一直在舞台垂直居中位置出现的弹幕className

mAnimation

类型:string

默认值:'transform'

移动端弹幕动画类型;'transform':代表采用css3的transform:translate3d(x,y,z);页面性能好,动画效果十分流畅;'left':代表采用css3的transition:left;来过渡,性能差,动画效果有卡顿

hSpacing

类型:number

默认值:0.2

普通弹幕间最小高度间距是弹幕本身高度的几倍

flyTime

类型:number

默认值:10000

弹幕飞行时间,越大速度越慢

timeInterval

类型:number

默认值:3000

播放下一条普通弹幕的时间间隔

alwaysLoopTime

类型:number

默认值:10000

播放下一个舞台垂直居中弹幕的时间间隔

randomSort

类型:boolean

默认值:false

是否随机打乱初始弹幕数据

loop

类型:boolean

默认值:true

是否循环播放弹幕

autoplay

类型:boolean

默认值:true

是否自动播放弹幕

mouseoverpause

类型:boolean

默认值:true

是否鼠标上移悬停普通弹幕(只在pc端弹幕有效)

awmouseoverpause

类型:boolean

默认值:false

是否鼠标上移悬停舞台垂直居中弹幕(只在pc端弹幕有效)

danMuOverAlwaysLoop

类型:boolean

默认值:true

弹幕不循环播放的情况下,普通弹幕播放完毕,舞台垂直居中弹幕是否继续循环播放

cookieName

类型:string

默认值:'TGideasDanMu'

静态数据弹幕下,用户发布的弹幕存入本地cookie的cookie名称;设为''代表不存入cookie,也不从cookie中读取用户以前发布的弹幕数据

cookieExp

类型:number

默认值:3650

cookie过期时间(单位:天),仅在静态数据弹幕下,用户发布弹幕存于cookie时有效

localDanMuRandomInsert

类型:boolean

默认值:true

初始化弹幕时,存于本地cookie的弹幕数据是否随机插入到弹幕中

localDanMuNotRandomIndex

类型:number

默认值:3

表示从第几条开始播放本地cookie中的弹幕,仅在上一个参数设置为false时有效

localDanMuHasMyStyle

类型:boolean

默认值:false

本地cookie中的弹幕是否拥有'我发布的弹幕'样式,即mydanmu样式

appendRepeat

类型:boolean

默认值:false

静态弹幕追加弹幕数据,弹幕内容是否可重复

myDanMuPrefix

类型:string

默认值:'我:'

我发送弹幕时,显示在弹幕内容前面的前缀

uniqueTagName

类型:string

默认值:''

每条弹幕数据用户的唯一标识属性名称。仅在动态弹幕下,且需要区分每条弹幕的用户(如显示用户id、展示用户头像等),才需设置

userId

类型:string | number

默认值:''

代表当前用户的唯一标识属性值。仅在上一个参数有设置的情况下,才需设置

showMyStyle

类型:boolean

默认值:false

在动态弹幕下,除了用户当前发送的弹幕外的其他弹幕,如果用户标识也是当前用户,是否要显示'我的弹幕'样式,即mydanmu样式

submitSuccessCallback

类型:boolean

默认值:false

在动态弹幕下,该参数用于在发布弹幕时的成功回调方法里面,代表是否等到ajax提交弹幕数据到后台成功之后才置sendStatus为true

aDanMuCreated

类型:function

默认值:function(){}

每一条弹幕创建完毕的回调方法,该方法在弹幕进入舞台之前执行的。例如:function(index, el, className){...}index:弹幕索引el:弹幕domclassName:弹幕className

distanceToStage

类型:number

默认值:50

每个弹幕初始位置在弹幕舞台的右侧加上多少像素,50代表50px

sendIfStopTips

类型:string

默认值:'弹幕已经暂停或关闭,不能发布!'

如果当前弹幕已经暂停或关闭的话,发布弹幕会失败,且会有这个提醒

sendIfFastTips

类型:string

默认值:'您发布弹幕的速度太快了,请歇一会!'

如果用户发送弹幕的速度太快的话,发布弹幕会失败,且会有这个提醒

direction

类型:string

默认值:'h'

设置水平弹幕或垂直弹幕。'h'代表水平弹幕;'v'代表垂直弹幕

preventingXSS

类型:boolean

默认值:true

是否在用户使用send()方法发送弹幕时防御DomXSS,默认为true

hSpacingFixed

类型:boolean

默认值:false

上下两条弹幕的高度间距是否固定。默认为false,代表高度间距是随机不固定的

方法说明

send(data,callback)

用户发送弹幕方法。

data:【必选】一条弹幕的内容,类型string

callback(cval):【可选】发送弹幕成功的回调方法,类型function。其中参数cval为防御DomXSS后弹幕的最终文本

triggerSend(params,callback)

前端开发同学模拟用户发送普通弹幕方法。

params:【必选】API调用的参数,类型object,含有3个属性,分别为data、sendid、insert;

params.data:【必选】一条弹幕的内容,类型string(当uniqueTagName为空时)或object(当uniqueTagName不为空时,data格式为{'comment':'',uniqueTagName:''})

params.sendid:【可选】模拟用户发送普通弹幕时,每条弹幕添加的标识号(不同弹幕的标识号可以相同),在aDanMuCreated参数方法中会抛出每条弹幕的el,我们通过$(el).data('sendid')即可获得我们模拟弹幕设置的sendid,类型string或number

params.insert:【可选】代表模拟用户发送的普通弹幕是否存入普通弹幕集合的数组中,用于loop为true的弹幕下次循环时播放显示,默认不存入数组,类型boolean

callback():【可选】发送弹幕成功的回调方法,类型function

注:在send方法中,如果用户发送弹幕过快会给予提示;在triggerSend方法中则不会提示发送弹幕过快。

append(data,callback)

追加弹幕方法。

data:【必选】弹幕数组,类型array

callback():【可选】追加弹幕成功的回调方法,类型function

pause(callback)

暂停弹幕方法。

callback():【可选】暂停弹幕成功的回调方法,类型function

play(callback)

播放弹幕方法。

callback():【可选】播放弹幕成功的回调方法,类型function

results matching ""

    No results matching ""