不知大家有没有感受到,弹幕又是另一出好戏!! 
不过我个人还是比较排斥看电视的时候被出来的弹幕打扰。今天我们来写一个简单的弹幕。简单到什么程度呢?看下效果:

由图可以看出,我们的呆毛html结构确实是非常简单啦。 
就是由一个p、一个input框另加一个button组成。

<p id="box" class="box"></p>

<input type="text" id="txt" />

<button onclick="send()">提交内容</button>

先po上js代码:

function $(str) {

 return document.getElementById(str);

}

function send() {

 var word = $('txt').value;

 var span = document.createElement('span');

 var top = parseInt(Math.random() * ) - ;

 var color1 = parseInt(Math.random() * );

 var color2 = parseInt(Math.random() * );

 var color3 = parseInt(Math.random() * );

 var color = "rgb(" + color1 + "," + color2 + "," + color3 + ")";

 top = top <  ?  : top;

 span.style.position = 'absolute';

 span.style.top = top + "px";

 span.style.color = color;

 span.style.left = '500px';

 span.style.whiteSpace = 'nowrap';

 var nub = (Math.random() * ) + ;

 span.setAttribute('speed', nub);

 span.speed = nub;

 span.innerHTML = word;

 $('box').appendChild(span);

 $('txt').value = "";

}

setInterval(move, );

function move() {

 var spanArray = $('box').children;

 for (var i = ; i < spanArray.length; i++) {

  spanArray[i].style.left =

   parseInt(spanArray[i].style.left) - spanArray[i].speed + 'px';

 }

}

原理简单说下:

第一步,我们要拿到input框里面的内容,var word = $('txt').value; 
第二步,我们就要把这个内容想方设法地塞到要滚动显示的p里面去了,原则有三:①颜色随机②高度随机③与左边框的距离实时变化; 
第三步,把这个内容追加到p里 $('box').appendChild(span);

由上述步骤原理可以看出,第二步是最关键的一步,

实现第一个原则:

var color1 = parseInt(Math.random() * );

var color2 = parseInt(Math.random() * );

var color3 = parseInt(Math.random() * );

var color = "rgb(" + color1 + "," + color2 + "," + color3 + ")";

span.style.color = color;

小扩展: 

RGB(R,G,B); 
R: 
红色值。正整数 | 百分数 
G: 
绿色值。正整数 | 百分数 
B: 
蓝色值。正整数 | 百分数
这样就应该是很容易理解了。

实现第二个原则:

var top = parseInt(Math.random() * ) - ;

top = top <  ?  : top;

span.style.top = top + "px";

实现第三个原则:

span.style.left = '500px';

setInterval(move, );

function move() {

 var spanArray = $('box').children;

 for (var i = ; i < spanArray.length; i++) {

  spanArray[i].style.left =

   parseInt(spanArray[i].style.left) - spanArray[i].speed + 'px';

 }

}

就是利用了定时器的原理,让left的值实时变化。

讲到这里,就应该很清晰明了了吧。

JavaScript实现简单的弹幕效果实例分析的更多相关文章

  1. Android:简单的弹幕效果达到

    首先,效果图.分类似至360检测到的骚扰电话页面: 布局非常easy,上面是一个RelativeLayout,以下一个Button. 功能: (1)弹幕生成后自己主动从右側往左側滚动(Translat ...

  2. JavaScript做简单的购物车效果(增、删、改、查、克隆)

    比如有时候遇到下面这种情况,点击加入购物车,然后在上方的购物车中动态的添加商品以及商品的信息,我们就可以通过JavaScript实现简单的这些操作. 首先我们需要在html文档中,通过css对页面的布 ...

  3. Javascript自定义事件功能与用法实例分析

    原文地址:https://www.jb51.net/article/127776.htm 本文实例讲述了javascript自定义事件功能与用法.分享给大家供大家参考,具体如下: 概述 自定义事件很难 ...

  4. android 弹幕效果demo

    记得之前有位朋友在我的公众号里问过我,像直播的那种弹幕功能该如何实现?如今直播行业确实是非常火爆啊,大大小小的公司都要涉足一下直播的领域,用斗鱼的话来讲,现在就是千播之战.而弹幕则无疑是直播功能当中最 ...

  5. Android弹幕功能实现,模仿斗鱼直播的弹幕效果

    转载出处:http://blog.csdn.net/sinyu890807/article/details/51933728 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即 ...

  6. 一些有用的javascript实例分析(三)

    原文:一些有用的javascript实例分析(三) 10 输入两个数字,比较大小 window.onload = function () { var aInput = document.getElem ...

  7. 一些有用的javascript实例分析(一)

    原文:一些有用的javascript实例分析(一) 本文以http://fgm.cc/learn/链接的实例索引为基础,可参见其实际效果.分析和整理了一些有用的javascript实例,相信对一些初学 ...

  8. 一些有用的javascript实例分析(二)

    原文:一些有用的javascript实例分析(二) 5 求出数组中所有数字的和 window.onload = function () { var oBtn = document.getElement ...

  9. C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断

    C#保留2位小数几种场景总结   场景1: C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.2 ...

随机推荐

  1. 2000字读懂Java的来源

    title: Java的来源 blog: CSDN data: Java学习路线及视频 1.Java市场 截至2020-03: Java的市场份额为17.78% 2. Java语言简介 是SUN(St ...

  2. [转载] 全局键盘钩子(WH_KEYBOARD)

    为了显示效果,在钩子的DLL中我们会获取挂钩函数的窗体句柄,这里的主程序窗体名为"TestMain",通过FindWindow查找. KeyBoardHook.dll代码 libr ...

  3. js正则校验表单

    /** * 表单校验规则 * 不符合规则时,返回错误文案 * 符合规则时,返回false */ var rules = {} // 是否必填 rules.required = function (va ...

  4. hdu2732 最大流+拆点

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2732 题目给定一个场景,有n*m个方格,每个方格代表一个柱子,一个柱子可以承受不同次数的跳跃,开始时图 ...

  5. 一个使用fasttext训练的新闻文本分类器/模型

    fastext是什么? Facebook AI Research Lab 发布的一个用于快速进行文本分类和单词表示的库.优点是很快,可以进行分钟级训练,这意味着你可以在几分钟时间内就训练好一个分类模型 ...

  6. 计网-ping服务命令与ICMP协议

    目录 一.IP协议的助手 —— ICMP 协议(网络层协议) 二.ping —— 查询报文类型的使用 三.traceroute —— 差错报文类型的使用 参考:从Wireshark抓包软件角度理解PI ...

  7. go语言系列-从零到数据类型的基本介绍

    视频资源:b站UP主v若水若水的尚硅谷go视频 不动笔墨不读书 ,虽然我有全套视频和笔记 还是自己动点笔墨 因为在19年下半年大致学过go语言 所以这么计划:一个星期拿下基础 一个星期拿下框架 两个星 ...

  8. mysql事务提交和回滚机制

    应用场景:   银行取钱,从ATM机取钱,分为以下几个步骤       1 登陆ATM机,输入密码:    2 连接数据库,验证密码:    3 验证成功,获得用户信息,比如存款余额等:    4 用 ...

  9. 医学图像 | 使用深度学习实现乳腺癌分类(附python演练)

    乳腺癌是全球第二常见的女性癌症.2012年,它占所有新癌症病例的12%,占所有女性癌症病例的25%. 当乳腺细胞生长失控时,乳腺癌就开始了.这些细胞通常形成一个肿瘤,通常可以在x光片上直接看到或感觉到 ...

  10. R与金钱游戏:美股与ARIMA模型预测

    似乎突如其来,似乎合情合理,我们和巴菲特老先生一起亲见了一次,又一次,双一次,叒一次的美股熔断.身处历史的洪流,渺小的我们会不禁发问:那以后呢?还会有叕一次吗?于是就有了这篇记录:利用ARIMA模型来 ...