Giter VIP home page Giter VIP logo

jquery.barrager.js's Introduction

jquery.barrager.js 专业的网页弹幕插件

基本信息

名称 jquery.barrager.js
版本 1.1
项目主页 http://yaseng.github.io/jquery.barrager.js
下载 https://github.com/yaseng/jquery.barrager.js
github https://github.com/yaseng/jquery.barrager.js

demo_1

Jquery.barrager.js 是一款优雅的网页弹幕插件,支持显示图片,文字以及超链接。支持速度、高度、颜色、数量等自定义。能轻松集成到论坛,博客等网站中。

使用

发布弹幕

弹幕文字必选,图片,链接为空则不显示,其他的可选项有默认值,弹幕具体配置如下代码。

var item={
   img:'static/heisenberg.png', //图片 
   info:'弹幕文字信息', //文字 
   href:'http://www.yaseng.org', //链接 
   close:true, //显示关闭按钮 
   speed:8, //延迟,单位秒,默认8
   bottom:70, //距离底部高度,单位px,默认随机 
   color:'#fff', //颜色,默认白色 
   old_ie_color:'#000000', //ie低版兼容色,不能与网页背景相同,默认黑色 
 }
$('body').barrager(item);

清除所有弹幕

 $.fn.barrager.removeAll();

兼容低版本ie

ie 浏览器小于9不兼容css 圆角,采用兼容样式,可单独设置弹幕的颜色,属性为old_ie_color,建议不要与网页主背景色相同。 兼容模式效果图

ie

集成

通用后端

读取服务端有两种模式,适应于不同的场景

  1. 实时读取,隔x秒请求一次接口,获取一条弹幕,发送。
  2. 一次读取完毕,隔x秒发送一条弹幕。

注意:json数据需要HTML 实体化以防止xss攻击。

第一种模式示范代码 server 端(php)

<?php 
//数组里面可以自定义弹幕的所有属性。
$barrages=
array(
	array(
		'info'   => '第一条弹幕',
		'img'    => 'static/img/heisenberg.png',
		'href'   => 'http://www.yaseng.org',

		),
	array(
		'info'   => '第二条弹幕',
		'img'    => 'static/img/yaseng.png',
		'href'   => 'http://www.yaseng.org',
		'color'  =>  '#ff6600'

		),
	array(
		'info'   => '第三条弹幕',
		'img'    => 'static/img/mj.gif',
		'href'   => 'http://www.yaseng.org',
		'bottom' => 70 ,

		),
	array(
		'info'   => '第四条弹幕',
		'href'   => 'http://www.yaseng.org',
		'close'  =>false,

		),

	);
	
//随机输出一个 
echo  json_encode($barrages[array_rand($barrages)]);

浏览器端获取json 弹幕数据,setInterval 调用,如有弹幕,就显示。 代码如下

//每条弹幕发送间隔
var looper_time=3*1000;
//是否首次执行
var run_once=true;
do_barrager();

function do_barrager(){
  if(run_once){
      //如果是首次执行,则设置一个定时器,并且把首次执行置为false
      looper=setInterval(do_barrager,looper_time);                
      run_once=false;
  }
  //获取
  $.getJSON('server.php?mode=1',function(data){
      //是否有数据
      if(data.info){

           $('body').barrager(data);
      }

  });
}

效果如图 demo_3

第二种模式示范代码。 server 端 (php)

	//数组里面可以自定义弹幕的所有属性。
$barrages=
array(
	array(
		'info'   => '第一条弹幕',
		'img'    => 'static/img/heisenberg.png',
		'href'   => 'http://www.yaseng.org',

		),
	array(
		'info'   => '第二条弹幕',
		'img'    => 'static/img/yaseng.png',
		'href'   => 'http://www.yaseng.org',
		'color'  =>  '#ff6600'

		),
	array(
		'info'   => '第三条弹幕',
		'img'    => 'static/img/mj.gif',
		'href'   => 'http://www.yaseng.org',
		'bottom' => 70 ,

		),
	array(
		'info'   => '第四条弹幕',
		'href'   => 'http://www.yaseng.org',
		'close'  =>false,

		),

	);


echo   json_encode($barrages);

浏览器端

$.ajaxSettings.async = false;
$.getJSON('server.php?mode=2',function(data){

//每条弹幕发送间隔
var looper_time=3*1000;
var items=data;
//弹幕总数
var total=data.length;
//是否首次执行
var run_once=true;
//弹幕索引
var index=0;
//先执行一次
barrager();
function  barrager(){

 
  if(run_once){
      //如果是首次执行,则设置一个定时器,并且把首次执行置为false
      looper=setInterval(barrager,looper_time);                
      run_once=false;
  }
  //发布一个弹幕
  $('body').barrager(items[index]);
  //索引自增
  index++;
  //所有弹幕发布完毕,清除计时器。
  if(index == total){

      clearInterval(looper);
      return false;
  }

  


}


});

效果如图 demo_2

Discuz

discuz 弹幕插件是一款基于discuz 论坛专业的弹幕插件,使用弹幕显示帖子,回复,指定内容等,为论坛带来更多的趣味和互动性。支持速度、高度、颜色、数量等自定义,兼容各种主流浏览器 。 插件地址: http://addon.discuz.com/?@uauc_barrager.plugin

WordPress

jquery.barrager.js WordPress集成 http://yaseng.org/jquery-barrager-js-for-wordpress.html

hexo

jquery.barrager.js hexo 集成 http://yaseng.org/jquery-barrager-js-for-hexo.html

版本更新

1.0

实现弹幕功能

1.1

1.更改弹幕动画方案,再多弹幕也不会卡了。

2.修正弹幕运行范围。

jquery.barrager.js's People

Contributors

yaseng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jquery.barrager.js's Issues

高数量弹幕引起速度缓慢

点击官网首页的”弹弹弹“按钮产生弹幕,点击次数少没影响,快速不断点击产生的弹幕会导致弹幕移动速度极慢。刚才测试了一下,已经过去好多分钟了,所有弹幕1/10的屏幕都没走完。

弹幕位置优化

同一时间发出多个弹幕,弹幕会随机相互覆盖,可能随机算法需要添加一些规则,如果同时有其他弹幕在某个网页某个高度,新弹幕就应该在空闲的高度出现

怎么循环播放弹幕?

数据很少的时候一会儿就飘完了,想让它加载完所有弹幕后再重新加载怎么弄。

压缩的js文件报错

压缩后的jquery.barrager.min.js中,$.fn.barrager.removeAll=function(){$('.barrage').remove()}}报错,$前面应加上分号

存在一个bug

当存在大量弹幕(20条以上) 会明显出现 弹幕的移动速度会整体放慢,如本来设定的setInterval 步长为6 但是当多次点击“弹弹弹”或者采用服务器端读取弹幕信息来输出的时候,弹幕的移动速度明显的下降了。暂时我也找不出原因,猜测是多条弹幕运行 导致浏览器性能下降,弹幕之间发送是采用同步进行的,如果是异步进行可能就没问题了。

速度异常

和官网同样是6速度, 但是速度明显比官网快很多, 而且不是很流畅
而且换到别的网页的时候, 弹幕也不会停, 而官网的会停.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>会议弹幕</title>
    <link rel="stylesheet" type="text/css" href="static/css/bootstrap.min.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="static/css/style.css" />
    <link rel="stylesheet" type="text/css" href="dist/css/barrager.css">
    <link rel="stylesheet" type="text/css" href="barrage.css">
    <link rel="stylesheet" type="text/css" href="static/pick-a-color/css/pick-a-color-1.2.3.min.css">
    <link rel="stylesheet" type="text/css" href="static/syntaxhighlighter/styles/shCoreDefault.css"/>
</head>
<body class="bb-js" onload="onload()" id="body">

    <button type="button" onclick="send()">send</button>

    <script type="text/javascript" src="./barrage.js"></script>
    <script type="text/javascript" src="./tool.js"></script>
    <script type="text/javascript" src="static/js/jquery-1.9.1.min.js"></script>
    <script type="text/javascript" src="static/js/bootstrap.min.js"></script>
    <script type="text/javascript" src="static/js/tinycolor-0.9.15.min.js"></script>  
    <script type="text/javascript" src="dist/js/jquery.barrager.js"></script>
    <script type="text/javascript" src="static/syntaxhighlighter/scripts/shCore.js"></script>
    <script type="text/javascript" src="static/syntaxhighlighter/scripts/shBrushJScript.js"></script>
    <script type="text/javascript" src="static/syntaxhighlighter/scripts/shBrushPhp.js"></script>
    <script type="text/javascript" src="static/pick-a-color/js/pick-a-color-1.2.3.min.js"></script>  
</body>
</html>

ios webview下复制功能无法使用

$(id).animate({
right: this_width
}, barrage.speed * 1000, function() {
$(id).remove();
});
jquery.barrager.min.js源码里这段注释后就可以使用

hexo插件名称

作者你好,这个有hexo插件嘛?我没有找到。有的话,能给下插件名字或者地址嘛?谢谢!

怎么清除队列里的所有弹幕呢

$.fn.barrager.removeAll(); 好像只能清除屏幕上有的,而不能清除队列上所有的

我现在的问题是这样的.打开一个图片后,然后加载这个图片的所有弹幕
但是当切换照片的时候,我希望之前一个队列里面的所有弹幕全部中止

弹幕范围

怎么控制弹幕的范围,把$('body').barrager(item)的body替换成指定div没作用

【建议】支持指定容器弹幕+无依赖

楼主的这个弹幕不论是效果上还是操作上都是很方便的。但是希望可以支持指定容器,即弹幕不会跳出那个容器。虽然现在配合jq进行计算后可以通过bottom参数来控制,但是感觉还可以更方便点。

另外,也希望能有一个无依赖版本的,因为在手机端再放入一个jq,感觉怪怪了。如果无依赖,那用到vue等地方就更方便了。

如何使弹幕出现在其他div

自定义了一个div,然后设置了一下属性,将 $('body').barrager(item);的body更改为div,好像并不能实现
感觉只能在body上实现弹幕,位置就只能设置好随机数了。
那么如何才能在一个特定的div里面实现弹幕呢

性能优化

当网页上超过一定数量弹幕,感觉弹幕就跑不动了

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.