简单实现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插件
Mar 29 jQuery
JQuery实现定时刷新功能代码
May 09 jQuery
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
Jul 20 jQuery
jQuery基于Ajax实现读取XML数据功能示例
May 31 jQuery
jquery分页插件pagination使用教程
Oct 23 jQuery
Jquery获取radio选中值实例总结
Jan 17 jQuery
详解jQuery设置内容和属性
Apr 11 jQuery
Javascript和jquery在selenium的使用过程
Oct 31 jQuery
jQuery+ThinkPHP实现图片上传
Jul 23 jQuery
JQuery使用数组遍历跳出each循环
Sep 01 jQuery
jQuery实现简单弹幕制作
Dec 10 jQuery
jQuery实现鼠标拖动图片功能
Mar 04 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
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
JS验证身份证有效性示例
2013/10/11 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
无法获取隐藏元素宽度和高度的解决方案
2017/03/07 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
2017/12/06 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
Vue shopCart 组件开发详解
2018/01/26 Javascript
element UI upload组件上传附件格式限制方法
2018/09/04 Javascript
理理Vue细节(推荐)
2019/04/16 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
vue.js watch经常失效的场景与解决方案
2021/01/07 Vue.js
Python字符串转换成浮点数函数分享
2015/07/24 Python
python+pygame简单画板实现代码实例
2017/12/13 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
python中for in的用法详解
2020/04/17 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
纯CSS3发光分享按钮的实现教程
2014/09/06 HTML / CSS
HTML5离线应用与客户端存储的实现
2018/05/03 HTML / CSS
Gap工厂店:Gap Factory
2017/11/02 全球购物
国外的一些J2EE面试题一
2012/10/13 面试题
母校寄语大全
2014/04/10 职场文书
项目建议书怎么写
2014/05/15 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书
Python包argparse模块常用方法
2021/06/04 Python
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python