简单实现jQuery弹幕效果


Posted in jQuery onMay 06, 2017

在要写一个弹幕案例的时候,首先要清楚每一步要干什么。
首先搭好框架之后在要发送弹幕时应该准备进行如下步骤:

  • 获取到要发送到弹幕上的内容,即获取到文本框输入的内容。通过jquery的var str = $(“#文本框的id”).val();
  • 生成一个元素:利用jQuery的 var createSpan =$(““)生成一个span元素,以便发送。
  • 给刚创建的span赋值,即获取到的文本框中的值 createSpan.text(str );
  • 设置元素的动画效果,是元素动起来。利用jQuery的animate(css样式值,时间, 执行完动画调用的方法)。执行完动画得手动移除刚刚所添加的元素。

里面还有许多细节,仔细看就会有收获!

<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8" />
 <title>弹幕案例</title>
 <script src = "http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
 <script>
 $(function(){
 var boxDom = $("#boxDom");
 //var domContent = $("#domContent");

 var top, right;

 var pageWidth = parseInt($(document).width());
 var pageHeight =parseInt($(document).height());

 //点击按钮
 $("#btn").bind("click",auto);//按钮绑定方法
 //按下回车
 document.onkeydown = function(){
  if(event.keyCode == 13){
  auto();
  }
 }
 function auto(){
 //1.获取输入的字符串
 var str = $(".text").val();
 //2.生成一个元素
 var createSpan = $("<span class = 'string' ></span>");

 //3.给生成的元素赋值

 createSpan.text(str);

 //为了页面友好,清空刚刚输入的值
 $(".text").val("");

 //生成元素一个随机的位置,为了使每条弹幕都出现在屏幕上不同的位置
 top = Math.floor(Math.random()*pageHeight);


 createSpan.css({"top":top, "right": -400, "color": getRandomColor()});
 boxDom.append(createSpan);

 //4.设置元素的动画效果,animate(css样式值,时间, 执行完动画调用的方法)

 //页面上有N个span,只让最后一个动起来
 var spandom = $("#boxDom>span:last-child");//找到最后一个span
 spandom.animate({"right":pageWidth+300},10000,function(){
  //移除元素
  $(this).remove();

 });
 }
 //定义一个可以生成随机颜色的方法,可以使每条弹幕的颜色不同
 function getRandomColor(){
  var colorArr = ['1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];
  var color = "";
  for(var i = 0; i < 6; i++){
  color += colorArr[Math.floor(Math.random()*16)]; 
  }
  return "#"+color;
 }

 });
 </script>
 <style type="text/css">
 html,body{
 margin: 0px;
 padding: 0px;
 width: 100%;
 height: 100%;
 font-family: "微软雅黑";
 background: #ccc;
 }
 .boxDom{
 width: 100%;
 height: 100%;
 position: relative;
 overflow: hidden;
 }
 .idDom{
 width: 100%;
 height: 60px;
 background:#666;
 position: fixed;
 bottom: 0px;
 }
 .contet{
 width: 500px;
 height: 40px;
 position: absolute;
 top: 0px;
 right: 0px;
 bottom: 0px;
 left: 0px;
 margin: auto;

 }
 .title{
 display: inline;
 font-size: 24px;
 vertical-align: bottom;
 color: #ffffff;
 padding-left: 300px;
 }

 .text{
 width: 300px;
 height: 30px;
 border:none;
 border-radius:5px;
 font-size: 20px;
 margin-left:60px;
 }
 .btn{
 width: 60px;
 height: 30px;
 color: #ffffff;
 background-color: red;
 border:none;
 font-size:16px;
 margin-left:60px;
 margin-top: 20px;
 }
 .string {
  width: 300px;
  height: 40px;
  margin-top: 20px;
  position: absolute;
  color: #000;
  font-size: 20px;
  font-family: "微软雅黑";

 }
 </style>
</head>
<body>
<div class = "boxDom" id = "boxDom">
 <img src="../images/bg_2.jpg" style="width:100%; height:100%" />
 <div id = "idDom" class = "idDom">
 <div class = "content">
  <p class = "title"> 说点什么:</p>
  <input type = "text" class = "text"/>
  <button type = "button" class = "btn" id = "btn" >发送</button>
 </div>
 </div>
</div>
</body>
</html>

效果图如下:

简单实现jQuery弹幕效果

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

jQuery 相关文章推荐
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
Mar 22 jQuery
jQuery实现Select下拉列表进行状态选择功能
Mar 30 jQuery
jQuery实现文章图片弹出放大效果
Apr 06 jQuery
基于Jquery Ajax type的4种类型(详解)
Aug 02 jQuery
JQuery EasyUI 结合ztrIee的后台页面开发实例
Sep 01 jQuery
jQuery实现的简单无刷新评论功能示例
Nov 08 jQuery
jquery实现左右轮播切换效果
Jan 01 jQuery
jQuery插件实现的日历功能示例【附源码下载】
Sep 07 jQuery
jQuery实现的老虎机跑动效果示例
Dec 29 jQuery
jquery选择器和属性对象的操作实例分析
Jan 10 jQuery
基于JQuery实现页面定时弹出广告
May 08 jQuery
jQuery实现影院选座订座效果
Apr 13 jQuery
jquery实现提示语淡入效果
May 05 #jQuery
Jquery获取radio选中的值
May 05 #jQuery
jQuery实现简单的抽奖游戏
May 05 #jQuery
jquery中each循环的简单回滚操作
May 05 #jQuery
jquery dataTable 获取某行数据
May 05 #jQuery
js和jquery中获取非行间样式
May 05 #jQuery
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
May 05 #jQuery
You might like
PHP中的MYSQL常用函数(php下操作数据库必备)
2010/09/12 PHP
PHP include任意文件或URL介绍
2014/04/29 PHP
thinkPHP实现将excel导入到数据库中的方法
2016/04/22 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
图片img的src不变让浏览器重新加载实现方法
2013/03/29 Javascript
jquery foreach使用示例
2013/09/12 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
js实现文字列表无缝滚动效果
2017/06/23 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
2019/09/03 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
python脚本实现查找webshell的方法
2014/07/31 Python
Python列表与元组的异同详解
2019/07/02 Python
计算Python Numpy向量之间的欧氏距离实例
2020/05/22 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
浅析python连接数据库的重要事项
2021/02/22 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
台湾租车首选品牌:IWS艾维士租车
2019/05/03 全球购物
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
应用电子专业学生的自我评价
2013/10/16 职场文书
餐饮收银员岗位职责
2014/02/07 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
护士年终考核评语
2014/12/31 职场文书
会计试用期工作总结2015
2015/05/28 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
小学教代会开幕词
2016/03/04 职场文书
创业计划书之美容店
2019/09/16 职场文书
python中pycryto实现数据加密
2022/04/29 Python