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 Json数据格式排版高亮插件json-viewer.js使用方法详解
Jun 12 jQuery
解决IE7中使用jQuery动态操作name问题
Aug 28 jQuery
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
vue+jquery+lodash实现滑动时顶部悬浮固定效果
Apr 28 jQuery
基于jQuery ztree实现表格风格的树状结构
Aug 31 jQuery
详解jQuery获取特殊属性的值以及设置内容
Nov 14 jQuery
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
Jan 09 jQuery
jQuery中实现text()的方法
Apr 04 jQuery
jQuery实现的移动端图片缩放功能组件示例
May 01 jQuery
jquery更改元素属性attr()方法操作示例
May 22 jQuery
jquery实现拖拽小方块效果
Dec 10 jQuery
使用jquery实现轮播图效果
Jan 02 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批量删除数据库下所有前缀为prefix_的表
2014/06/09 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
PHP字符串和十六进制如何实现互相转换
2020/07/16 PHP
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
2013/09/25 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
超赞的动手创建JavaScript框架的详细教程
2015/06/30 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
纯js仿淘宝京东商品放大镜功能
2017/03/02 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
2020/05/08 Javascript
js实现全选和全不选功能
2020/07/28 Javascript
python中map()与zip()操作方法
2016/02/27 Python
Python实现优先级队列结构的方法详解
2016/06/02 Python
Python制作豆瓣图片的爬虫
2017/12/28 Python
python 爬虫 批量获取代理ip的实例代码
2018/05/22 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
Python通过递归函数输出嵌套列表元素
2020/10/15 Python
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
幼儿园园长岗位职责
2013/11/26 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
会计专业自荐信范文
2015/03/05 职场文书
军训结束新闻稿
2015/07/17 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL
Python实现为PDF去除水印的示例代码
2022/04/03 Python