简单实现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插件HighCharts绘制简单2D折线图效果示例【附demo源码】
Mar 21 jQuery
JQuery 进入页面默认给已赋值的复选框打钩
Mar 23 jQuery
使用jQuery实现购物车结算功能
Aug 15 jQuery
基于jQuery实现图片推拉门动画效果的两种方法
Aug 26 jQuery
jQuery EasyUI开发技巧总结
Sep 26 jQuery
jQuery实现切换隐藏与显示同时切换图标功能
Oct 29 jQuery
jQuery实现左右滑动的toggle方法
Mar 03 jQuery
jQuery实现的滑块滑动导航效果示例
Jun 04 jQuery
jQuery动态移除与增加onclick属性的方法详解
Jun 07 jQuery
jQuery实现移动端扭蛋机抽奖
Nov 08 jQuery
JQuery绑定事件四种实现方法解析
Dec 02 jQuery
jQuery实现动态向上滚动
Dec 21 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初学者最感迷茫的问题小结
2010/03/27 PHP
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
PHP递归实现层级树状展开
2016/04/01 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
2019/12/13 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
深入浅析JavaScript中的3DES
2016/08/24 Javascript
VUE实现一个分页组件的示例
2017/09/13 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
js实现随机点名
2021/01/19 Javascript
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
Python中map和列表推导效率比较实例分析
2015/06/17 Python
pytorch permute维度转换方法
2018/12/14 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
《尊严》教学反思
2014/02/11 职场文书
铁路安全事故反思
2014/04/26 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
2016公司新年问候语
2015/11/11 职场文书
解决xampp安装后Apache无法启动
2022/03/21 Servers
Vue3中toRef与toRefs的区别
2022/03/24 Vue.js