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插件HighCharts绘制简单2D折线图效果示例【附demo源码】
Mar 21 jQuery
jquery实现异步加载图片(懒加载图片一种方式)
Apr 24 jQuery
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
Jun 02 jQuery
解决jquery appaend元素中id绑定事件失效的问题
Sep 12 jQuery
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 jQuery
基于jQuery中ajax的相关方法汇总(必看篇)
Nov 08 jQuery
基于jQuery Ajax实现下拉框无刷新联动
Dec 06 jQuery
JQuery选中select组件被选中的值方法
Mar 08 jQuery
20个最常见的jQuery面试问题及答案
May 23 jQuery
jquery登录的异步验证操作示例
May 09 jQuery
jQuery实现简单弹幕效果
Nov 28 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
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
javascript读取Xml文件做一个二级联动菜单示例
2014/03/17 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
概述jQuery的元素筛选
2016/11/23 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
JavaScript&quot;模拟事件&quot;的注意要点详解
2019/02/13 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
Python中的fileinput模块的简单实用示例
2015/07/09 Python
python获取元素在数组中索引号的方法
2015/07/15 Python
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
python数据处理实战(必看篇)
2017/06/11 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
Pytorch实现的手写数字mnist识别功能完整示例
2019/12/13 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
澳大利亚相机之家:Camera House
2017/11/30 全球购物
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
介绍一下Python中webbrowser的用法
2013/05/07 面试题
会计找工作求职信范文
2013/12/09 职场文书
机械设计职业生涯规划书
2013/12/27 职场文书
中队活动总结
2014/08/27 职场文书
教师批评与自我批评范文
2014/10/15 职场文书
《植物妈妈有办法》教学反思
2016/02/23 职场文书
七年级语文教学反思
2016/03/03 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书