jquery实现直播弹幕效果

 更新时间:2019年11月28日 11:08:38   作者:一只前端小白  
这篇文章主要为大家详细介绍了jquery实现直播弹幕效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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 多个radio的click事件实例

    jquery 多个radio的click事件实例

    下面小编就为大家带来一篇jquery 多个radio的click事件实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,祝大家游戏愉快哦
    2016-12-12
  • 基于jQuery的JavaScript模版引擎JsRender使用指南

    基于jQuery的JavaScript模版引擎JsRender使用指南

    这篇文章主要介绍了基于jQuery的JavaScript模版引擎JsRender使用指南,需要的朋友可以参考下
    2014-12-12
  • jQuery中:last-child选择器用法实例

    jQuery中:last-child选择器用法实例

    这篇文章主要介绍了jQuery中:last-child选择器用法,实例分析了:last-child选择器功能、定义及匹配父元素的最后一个子元素用法技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • jQuery判断checkbox是否选中的小例子

    jQuery判断checkbox是否选中的小例子

    判断checkbox是否选中的方法有很多,不过都是大同小异,下面为大家介绍下使用jquery是如何做到的,下面有个不错的示例,感兴趣的朋友可以参考下
    2013-12-12
  • 深入理解JQuery中的事件与动画

    深入理解JQuery中的事件与动画

    下面小编就为大家带来一篇深入理解JQuery中的事件与动画。小编觉得挺不错的,现在就分享给大家,也给大家做个参考,一起跟随小编过来看看吧
    2016-05-05
  • jQuery validate插件实现ajax验证重复的2种方法

    jQuery validate插件实现ajax验证重复的2种方法

    这篇文章主要介绍了jQuery validate插件实现ajax验证重复的2种方法,结合完整实例形式分析了jQuery validate插件的使用技巧,需要的朋友可以参考下
    2016-01-01
  • jQuery niceScroll滚动条错位问题的解决方法

    jQuery niceScroll滚动条错位问题的解决方法

    下面小编就为大家带来一篇jQuery niceScroll滚动条错位问题的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • jQuery实现ajax调用WCF服务的方法(附带demo下载)

    jQuery实现ajax调用WCF服务的方法(附带demo下载)

    这篇文章主要介绍了jQuery实现ajax调用WCF服务的方法,以完整实例形式分析了jQuery的ajax前端调用及后台交互调用WCF服务的相关技巧,并附带完整实例共读者下载,需要的朋友可以参考下
    2015-12-12
  • jquery $.each() 使用小探

    jquery $.each() 使用小探

    jquery each想必大家对此并不陌生吧,它的使用范围还是比较广泛的,下面与大家分享个示例来介绍jquery each的使用方法,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • 基于JQuery实现的Select级联

    基于JQuery实现的Select级联

    Select级联,想必大并不陌生吧,本文为大家介绍下使用jquery是如何快速实现的,希望对大家有所帮助
    2014-01-01

最新评论