jquery实现直播弹幕效果


Posted in jQuery onNovember 28, 2019

本文实例为大家分享了jquery直播弹幕展示的具体代码,供大家参考,具体内容如下

理论知识:

实现效果主要涉及jq对节点的操作,以及动画函数的使用…

思路:

1.获取到评论文本框的值,对文本内容进行处理

2.动态创建一条弹幕,将创建的弹幕动态的添加到需要显示的页面,并同时创建一条新的评论消息,动态添加到评论列表

3.利用数组将每次添加的弹幕保存起来,使用定时器让所有的弹幕循环动态的展示出来

大体上的思路就是这样,下面直接贴代码?

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title></title>
  <style type="text/css">
    html, body {
      margin: 0px;
      padding: 0px;
      width: 100%;
      height: 100%;
      font-family: "微软雅黑";
      font-size: 62.5%;
    }

    .boxDom {
      width: 100%;
      height: 100%;
      position: relative;
      overflow: hidden;
    }

    .idDom {
      width: 100%;
      height: 10%;
      background: #666;
      position: fixed;
      bottom: 0px;
    }

    .content {
      display: inline-block;
      width: 460px;
      height: 40px;
      position: absolute;
      left: 0px;
      right: 0px;
      top: 0px;
      bottom: 0px;
      margin: auto;
    }

    .title {
      display: inline;
      font-size: 4em;
      vertical-align: bottom;
      color: #fff;
    }

    .text {
      border: none;
      width: 300px;
      height: 30px;
      border-radius: 5px;
      font-size: 2.4em;
    }

    .btn {
      width: 60px;
      height: 30px;
      background: #f90000;
      border: none;
      color: #fff;
      font-size: 2.4em;
    }

    span {
      height: 40px;
      position: absolute;
      overflow: hidden;
      color: #000;
      font-size: 4em;
      line-height: 1.5em;
      cursor: pointer;
      white-space: nowrap;
    }
    #boxDom video{
      width: 80%;
      height: 90%;
      float: left;
    }
    #boxDom .list-info{
      width: 20%;
      height: 90%;
      float: left;
      background-color: #666;
      overflow-y: auto;
      overflow-x: hidden;
      position: relative;
      z-index: 999;
    }
    .list-info p{
      font-size: 15px;
      line-height: 20px;
      border-bottom: 1px dashed #ccc;
      text-indent: 2em;
      color: #fff;
    }

  </style>
</head>
<body>
<div class="boxDom" id="boxDom">
  <video controls="controls" src="movie/10_2fdd2bbcd15c68497744f07d4527cef2_3.mp4"></video>
  <div class="list-info"> </div>
  <div class="idDom" id="idDom">
    <div class="content">
      <p class="title">吐槽:</p>
      <input type="text" class="text" id="text"/>
      <button type="button" class="btn" id="btn">发射</button>
    </div>
  </div>
</div>
<script src="js/jquery-1.12.4.js"></script>
<script>
 //生成随机颜色
  var randomColor=function(){
    var r= Math.floor(Math.random()*257);
    var g= Math.floor(Math.random()*257);
    var b= Math.floor(Math.random()*257);
    return "rgb("+r+","+g+","+b+")";
  }
  //定义数组保存弹幕
  var saveDan=[],index=0,tm;
  //弹幕自动移动方法
  var autoAnimate=function(){
    index++;
    index>saveDan.length-1 && (index=0);
    saveDan[index].appendTo($("#boxDom")).animate({
      "right":$(document).width(),
    },10000,function () {
      $(this).css("right",$(".list-info").width()-$(this).width()).remove();
    });
  }
  //点击创建弹幕
  $("#btn").click(function () {
    var txt=$("#text");
    var randomTop=Math.floor(Math.random()*($("#boxDom video").height()-40));
    if(txt.val().trim().length==0)return;
    var span= $("<span></span>").text(txt.val()).css({
      "color":randomColor(),
      "top":randomTop,
      "right":$(".list-info").width(),
      "z-index":888
    });
    saveDan.unshift(span);//将新的弹幕添加到数组内容的前面
    //添加弹幕列表
    $("<p></p>").text(txt.val()).css("color",randomColor()).prependTo($(".list-info"));
    txt.val("");//清空文本框
    //自动跑起来
    clearInterval(tm);
    index=saveDan.length-1
    tm=setInterval(autoAnimate,1000);
  });
  //enter键确认发送
  $(document).keydown(function (e) {
    var e=e||window.event;
    e.keyCode==13 && ($("#btn").click());
  });
</script>
</body>
</html>

最后看看最终的效果图,模仿直播弹幕完成了

jquery实现直播弹幕效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery+pjax简单示例汇总
Apr 21 jQuery
jQuery实现frame之间互通的方法
Jun 26 jQuery
运用jQuery写的验证表单(实例讲解)
Jul 06 jQuery
jQuery选择器特殊字符与属性空格问题
Aug 14 jQuery
解决IE7中使用jQuery动态操作name问题
Aug 28 jQuery
jQuery+css last-child实现选择最后一个子元素操作示例
Dec 10 jQuery
jquery层次选择器的介绍
Jan 18 jQuery
Jquery实现获取子元素的方法分析
Aug 24 jQuery
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
Sep 10 jQuery
jQuery实现简单弹幕效果
Nov 28 jQuery
jQuery实现点击滚动到指定元素上的方法分析
Mar 19 jQuery
jQuery ajax - getScript() 方法和getJSON方法
May 14 jQuery
jQuery实现简单弹幕效果
Nov 28 #jQuery
jQuery实现轮播图效果
Nov 26 #jQuery
jQuery与原生JavaScript选择HTML元素集合用法对比分析
Nov 26 #jQuery
高效jQuery选择器的5个技巧实例分析
Nov 26 #jQuery
jquery使用echarts实现有向图可视化功能示例
Nov 25 #jQuery
jQuery Raty星级评分插件使用方法实例分析
Nov 25 #jQuery
jquery 插件重新绑定的处理方法分析
Nov 23 #jQuery
You might like
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
php检测useragent版本示例
2014/03/24 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
JavaScript this 深入理解
2009/07/30 Javascript
javascript eval和JSON之间的联系
2009/12/31 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
详解AngularJS过滤器的使用
2016/03/11 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
Python实现基于HTTP文件传输实例
2014/11/08 Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
快速入门python学习笔记
2017/12/06 Python
python利用tkinter实现屏保
2019/07/30 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
2020/06/28 Python
Python实现画图软件功能方法详解
2020/07/28 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
python爬虫用scrapy获取影片的实例分析
2020/11/23 Python
犹他州最古老的体育用品公司:Al’s
2020/12/18 全球购物
专业毕业生个性的自我评价
2013/10/03 职场文书
求职简历中个人的自我评价
2013/12/01 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
党校毕业心得体会
2014/09/13 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
2015年端午节活动方案
2015/05/05 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
Android自定义双向滑动控件
2022/04/19 Java/Android
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电