弹幕插件easyDanmaku.js使用详解

2 篇文章 0 订阅
1 篇文章 0 订阅

easyDanmaku.js弹幕插件使用详解(长期更新)

介绍

A Danmaku plugin for the web,一个用于web端的弹幕插件

特点

支持TypeScript、使用简单、使用css3过渡动画实现,弹幕流畅不卡顿、核心代码压缩后仅8kb。

安装

  1. LINK
<script src="http://panchuanpeng.cn/easyDanmaku/easyDanmaku.js"></script>
  1. NPM
$  npm install easy-danmaku-js --save
Demo预览地址
Github源码地址(欢迎大家帮我点star(抱拳))
2.在vue中使用(React,Angular中使用方式类似)
import EasyDanmaku from 'easy-danmaku-js';

export default {
        //~~~
        mounted() {
            const Danmaku = new EasyDanmaku({
                el:'#container',                        //弹幕挂载节点
                colourful:true,                         //彩色弹幕
                line:10,                                //弹幕行数
                wrapperStyle:'danmaku-wrapper',         //默认弹幕样式
                speed:5,                                //弹幕播放速度
                runtime:3,                              //播放一次的时常
                loop:true,                              //开启循环播放
                hover:true,                             //鼠标移入悬停
                onComplete:()=> {                       //播放结束
                    console.log('end');
                },                                      //hover时 参数为该悬停元素(初始化属性hover必须为true)
                onHover:(dom) => {
                    console.log(dom);
                }
            })
            /*循环播放弹幕 前提初始化属性hover:true*/
            const data = ['danmaku1','danmaku2','danmaku3','danmaku4','danmaku5','danmaku6']
            Danmaku.batchSend(data)

			/*发送单条弹幕*/
			Danmaku.send('弹幕内容','danmaku-wrapper',(e)=>{
		        alert('end!');
		        console.log(e);
		    })
			/*多次批量发送弹幕*/
			const Danmaku2 = new EasyDanmaku({
		        el:'#container2',
		        colourful:true,
		        line:10,
		        wrapperStyle:'danmaku-wrapper',
		        speed:3,
		        hover:true,
		        onComplete:function(){
		            console.log('单次弹幕插入完毕');
		            send();
		        }
		    })
		    function send(){
		        const data = ['danmaku1','danmaku2','danmaku3','danmaku4','danmaku5','danmaku6']
		        Danmaku2.batchSend(data)
		    }
		    send();
			/*居中弹幕*/
			setTimeout(() => {
                           			//弹幕内容  弹幕样式  持续时间(ms) 回调函数
		        Danmaku.centeredSend('弹幕内容','danmaku-wrapper',1000,(e)=>{
		            alert('end!');
		            console.log(e);
		        })
		    },2000)
        }
        // ~~~
    };

弹幕初始化属性

属性类型说明默认值
elstring弹幕所挂载的父节点-
wrapperStylestring所有弹幕初始样式default-style
linenumber弹幕行数10
speednumber弹幕速度5
colourfulboolean彩色弹幕false
runtimenumber循环弹幕播放时长10
loopboolean是否循环播放false
coefficientnumber弹幕密度系数1.38
hoverboolean鼠标hover时是否暂停播放弹幕false

弹幕事件

事件参数返回值说明
onCompletevoidvoid循环播放一轮或者批量弹幕插入完毕触发
onHover所hover的dom对象void鼠标hover在弹幕上时触发

弹幕方法

方法名说明参数例子
send发送单条弹幕(弹幕内容可用HTML标签包裹使用data-**标识特定数据)弹幕内容,弹幕样式,回调函数send(‘内容’,‘container-style’,function(e){})
centeredSend发送居中弹幕弹幕内容, 弹幕样式, 持续时间(ms), 回调函数centeredSend(‘内容’,‘container-style’,3000,function(e){})
batchSend发送批量弹幕(不包含头像)弹幕内容数组例,是否包含头像,默认样式batchSend([‘内容一’,‘内容二’],false,‘container-style’)
batchSend发送批量弹幕(包含头像)弹幕内容数组例,是否包含头像,默认样式batchSend([{avatar:url,content:‘弹幕内容’}],true,‘container-style’)
play播放屏幕中所有弹幕--
pause暂停屏幕中所有弹幕--

ps : 更多细节可查阅包文件夹中的demo


作者:rory
日期:2020年11月26日

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值