功能:

1.输入框内输入文字,点击发送,或按enter键
2.框内文字清空
3.文字随机从屏幕左边运动至屏幕右边
4.文字运动到右边界结束消失

所有代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><title>弹幕</title><style>html,body{font-size:10px;overflow:hidden;margin:0;padding:0;}#box{width:100%;height:100%;}#dm{width:100%;height:90vh;background:#E8F1F5;}#dm span{width:auto;height:3rem;font-size:2rem;line-height:2rem;position:absolute;white-space:nowrap;}#idDom{width:100%;height:10vh;background:#666;position:absolute;bottom:0;display:flex;align-items:center;justify-content:center;}#content{width:50rem;height:10vh;display:flex;align-items:center;justify-content:center;}.title{font-size:2.2px rein;color:#fff;line-height:#ccc;}.text{width:30rem;height:2.5rem;border:none;border-radius:.5rem;font-size:1.4rem;margin:0 .5rem;padding:0 1rem;}.btn{width:6rem;height:3rem;border:none;background:red;color:#fff;}</style>
</head>
<body>
<div class="box" id="box"><div id="dm"></div><div class="idDom" id="idDom"><div id="content"><p class="title">吐槽:</p><input type="text" class="text" id="text" placeholder="请输入你想说的话" /><button type="button" class="btn" id="btn">发送</button></div></div>
</div>
<script>var timer;var btn = document.getElementById('btn');btn.onclick = function() { addBarrage();}document.onkeydown = function(evt) {var event = evt || window.event;if (event.keyCode == 13) {addBarrage();}}var colors = ['#2C3E50', '#FF0000', '#1E87F0', '#7AC84B', '#FF7F00', '#9B39F4', '#FF69B4'];//弹幕颜色库function addBarrage() {clearInterval(timer);var text = document.getElementById('text').value;document.getElementById('text').value = "";var index = parseInt(Math.random() * colors.length); //随机弹幕颜色var screenW = window.innerWidth;var screenH = dm.offsetHeight;var max = Math.floor(screenH / 40);var height = 10 + 40 * (parseInt(Math.random() * (max + 1)) - 1);var span = document.createElement('span');span.style.left = screenW + 'px';span.style.top = height + 'px';span.style.color = colors[index];span.innerHTML = text;var dmDom = document.getElementById('dm');dmDom.appendChild(span);timer = setInterval(move, 10);}function move() {var arr=[];var oSpan=document.getElementsByTagName('span');for(var i=0;i<oSpan.length;i++){arr.push(oSpan[i].offsetLeft);arr[i] -= 2;oSpan[i].style.left = arr[i]+'px';if(arr[i]<-oSpan[i].offsetWidth){var dmDom=document.getElementById('dm');dmDom.removeChild(dmDom.childNodes[0]);}}}
</script>
</body>
</html>

JavaScript 小案例 弹幕相关推荐

  1. HTML+CSS+JavaScript小案例(注册页面表单验证轮播图跳转主页动态表格select联动)

    案例:(表单验证) <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  2. Javascript小案例(一):仿淘宝搜索框用户输入事件的实现

    淘宝是我们经常用的一个网上购物平台,打开淘宝网首页,找到淘宝首页的搜索框,如下如所示: (截图日期:2017年6月18日) 大家可以看到,当页面一打开,搜索框中就可以看到灰色字体"少女高跟鞋 ...

  3. javaScript小案例------js实现手风琴效果篇

    原生js书写手风琴效果 js手风琴效果 第一种方法 手风琴需求 html和css: html: css: js animate.js index.js 第二种方法 js手风琴效果 我用了两种方法来完成 ...

  4. JavaScript小案例程序保存(完整代码+效果展示)

    1.案例--点击button换照片 html部分 <!DOCTYPE html> <html lang="en"> <head><meta ...

  5. javascript小案例-----tab栏切换

    效果如下: 代码思路: 上面的选项卡,点击某一个,当前这一个会变成粉红色,其他不变(排他思想) 修改类名的方式 下面的内容会随着上面的选项卡变化,所以下面的模块变化要写到点击事件里面 下面的模块显示内 ...

  6. javaScript小案例------js实现无缝轮播图效果篇

    原生js书写无缝轮播图 javaScript无缝轮播图思路及源码 无缝轮播图效果 总体思路 下面附上代码: html css animate.js index.js javaScript无缝轮播图思路 ...

  7. javascript小案例-----快递单号查询

    要求: 当我们在文本中输入内容时,文本框自动显示大字号的内容 效果如下: 代码思路: 快递单号输入内容时,上面的大号字体盒子( con)显示(这里面的字号更大) 表单检测用户输入∶给表单添加键盘事件 ...

  8. JavaScript小案例——分时显示不同图片,显示不同问候语

    要求: 1.根据不同时间,页面显示不同的问候语. 2.如果上午时间打开画面,显示上午好,显示上午的照片.中午,晚上同理. 分析: 1.根据不同系统不同时间来判断,所有需要用到日期内置对象. 2.利用多 ...

  9. JavaScript小案例——登入页面(密码小眼睛)

    题目: 制作一个简单的登入页面,运用到简单的js技巧,实现密码框中小眼睛的功能. 注意:本篇介绍的案例没有运用到大量的js技巧,和页面渲染,只是简单的页面和交互.例如,输入密码不正确,检测输入栏是否为 ...

最新文章

  1. 用指针、子函数的方法去一维数组中所有元素的平均值,并放在a[0]处
  2. Latex学习笔记0
  3. oss可用性_对象存储OSS详解
  4. 个人阅读 代码大全的阅读与提问
  5. linkedhashmap获取第n个元素_机试真题分享——交换链表前后第K个元素
  6. 在Codeigniter框架中使用NuSOAP
  7. ORA-08103: object no longer exists
  8. 【LeetCode】【HOT】101. 对称二叉树(BFS+队列/递归)
  9. linux ssh和sftp区别,Linux SSH和SFTP配置
  10. Unity3D基础7:Transform组件
  11. python头像右上角加红色数字_利用python实现微信头像加红色数字功能
  12. 语言判断一个整数是奇数还是偶数_一个变量“存储”任意多的数 从“康托配对函数”聊开去...
  13. Unity3D加载资源的四种方式
  14. ERStudio如何显示entity的tableName(表名的英文)和defaultColumnName(英文字段名)
  15. Idea标记(或书签)功能
  16. linux 词霸,Ubuntu下使用原版金山词霸
  17. web标准和w3c_W3C记录了Web的体系结构
  18. cmd如何远程重启服务器
  19. APPNP:PREDICT THEN PROPAGATE: GRAPH NEURAL NETWORKS MEET PERSONALIZED PAGERANK
  20. 【转】dB的计算方法

热门文章

  1. Nature综述:Rob Knight带你分析微生物组数据
  2. 为什么选择语雀-你想知道的都在这
  3. iOS各种设备识别码IDFA、UDID、UUID、MAC、OpenUDID、IDFV
  4. 全球与中国生物质颗粒市场深度研究分析报告
  5. 区块链靠什么开启下一个互联网传奇?迅雷链:回归技术
  6. jadx 1.4.5反编译包不全
  7. 京东物流IPO:商流、物流、资金流,“三流”难归一
  8. idea常用方法和快捷键
  9. VAF:Variant Allel Frequency简介
  10. moment的常见用法总结