简单实现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中的$(window)与$(document)的用法区别
Aug 15 jQuery
jQuery实现IE输入框完成placeholder标签功能的方法
Sep 20 jQuery
jQuery与vue实现拖动验证码功能
Jan 30 jQuery
jQuery实现简单复制json对象和json对象集合操作示例
Jul 09 jQuery
详解jQuery中的easyui
Sep 02 jQuery
使用jQuery如何写一个含验证码的登录界面
May 13 jQuery
jQuery设置下拉框显示与隐藏效果的方法分析
Sep 15 jQuery
jQuery三组基本动画与自定义动画操作实例总结
May 09 jQuery
jQuery 移除事件的方法
Jun 20 jQuery
jQuery实现开关灯效果
Aug 02 jQuery
jQuery实现广告显示和隐藏动画
Jul 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
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
关于Yii中模型场景的一些简单介绍
2019/09/22 PHP
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
JavaScript 原型与继承说明
2010/06/09 Javascript
一个网马的tips实现分析
2010/11/28 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
2017/03/13 Javascript
Vue.js实战之Vuex的入门教程
2017/04/01 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
angular-tree-component的使用详解
2018/07/30 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
如何在 ant 的table中实现图片的渲染操作
2020/10/28 Javascript
Python深入06——python的内存管理详解
2016/12/07 Python
python常见排序算法基础教程
2017/04/13 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
python 生成图形验证码的方法示例
2018/11/11 Python
python实现简单名片管理系统
2018/11/30 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
详解django+django-celery+celery的整合实战
2019/03/19 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
python元组的概念知识点
2019/11/19 Python
Python sep参数使用方法详解
2020/02/12 Python
Python turtle库的画笔控制说明
2020/06/28 Python
python 实现单例模式的5种方法
2020/09/23 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
巴黎卡诗加拿大官网:Kérastase加拿大
2018/11/12 全球购物
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
职业规划从高考志愿专业选择开始
2019/08/08 职场文书