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实现前端分页功能
Mar 23 jQuery
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
May 19 jQuery
jQuery+Ajax实现用户名重名实时检测
Jun 01 jQuery
jQuery接受后台传递的List的实例详解
Aug 02 jQuery
基于JQuery的Ajax方法使用详解
Aug 16 jQuery
详解webpack3如何正确引用并使用jQuery库
Aug 26 jQuery
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
jQuery实现的简单日历组件定义与用法示例
Dec 24 jQuery
jquery选择器和属性对象的操作实例分析
Jan 10 jQuery
jquery检测上传文件大小示例
Apr 26 jQuery
jQuery实现本地存储
Dec 22 jQuery
jQuery实现鼠标拖动图片功能
Mar 04 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
E路文章系统PHP
2006/12/11 PHP
php设计模式 Interpreter(解释器模式)
2011/06/26 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
浅析php数据类型转换
2014/01/09 PHP
php获取CSS文件中图片地址并下载到本地的方法
2014/12/02 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
js 函数的副作用分析
2011/08/23 Javascript
treepanel动态加载数据实现代码
2012/12/15 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
JS实现单行文字不间断向上滚动的方法
2015/01/29 Javascript
js简单实现Select互换数据的方法
2015/08/17 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
Python base64编码解码实例
2015/06/21 Python
python简单分割文件的方法
2015/07/30 Python
Python3.4编程实现简单抓取爬虫功能示例
2017/09/14 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
python实现微信自动回复功能
2018/04/11 Python
Python中py文件引用另一个py文件变量的方法
2018/04/29 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
python的列表List求均值和中位数实例
2020/03/03 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
2020/05/25 Python
Python爬虫开发与项目实战
2020/12/16 Python
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
厂长岗位职责
2014/02/19 职场文书
求职意向书
2014/04/01 职场文书
大跃进口号
2014/06/16 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
新员工考核评语
2014/12/31 职场文书