JS實現彈幕效果(10.11—10.17)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>彈幕效果</title>
<link rel="stylesheet" href="../拉勾網首頁/common.css">
<link rel="stylesheet" href="../拉勾網首頁/reset.css">
</head>
<style>
.container{
margin-top: 40px;
}
.img{
margin: 0 auto;
width: 800px;
height: 300px;
border: 2px solid gold;
box-sizing: border-box;
background: url(./manco2.jpg) no-repeat left top /800px 300px ;
position: relative;
overflow: hidden;
}
.img span{
position: absolute;
top: 0;
left: 800px;
display: block;
overflow: hidden;
white-space: nowrap; /* 解決了出現了傳送的彈幕剛進入畫面時沒有換行的問題 */
}
.send{
margin: 0 auto;
width: 800px;
height: 50px;
background-color: gold;
color: #fff;
font-weight: bold;
font-size: 18px;
}
.send .left{
line-height: 50px;
margin-right: 60px;
}
.send input{
font-size: 18px;
border: none;
height: 40px;
width: 400px;
margin-top: 4px;
margin-left: 50px;
border-radius: 4px;
text-indent: 1em;
}
.send .button{
cursor: pointer;
}
</style>
<body>
<div class="container">
<div class="img" id="img"></div>
<div class="send clearfix">
<input type="text" id="text" class="left">
<div id="btns" class="button left">傳送</div>
<div id="btnh" class="button left">隱藏</div>
<div id="btnp" class="button left">顯示</div>
</div>
</div>
<script src="./tools.js"></script>
<script>
function $(id){
return document.getElementById(id);
}
function Sendmessages(){
var oSpan = document.createElement('span');
oSpan.innerHTML = $('text').value;
$('img').appendChild(oSpan);
var spanTop = Math.floor(Math.random()*250) + 'px';
changeCss(oSpan, 'top', spanTop);
changeCss(oSpan, 'color', rC());
move(oSpan);
$('text').value = "";
}
function move(elem){
var left = changeCss(elem, 'left');
var timer = setInterval(() => {
var spanWidth = elem.offsetWidth;
if(parseInt(left) >= -spanWidth){
left = parseInt(changeCss(elem, 'left'));
changeCss(elem, 'left', left - 2 + 'px');
}else{
elem.remove();
}
}, 20);
}
function rC() {
let r = Math.floor(Math.random() * 255);
let g = Math.floor(Math.random() * 255);
let b = Math.floor(Math.random() * 255);
let rgb = `rgb(${r},${g},${b})`;
return rgb;
}
addEvent($('btns'), 'click', Sendmessages);
addEvent(document, 'keydown', function(e){
var event = e || window.event;
if(event.keyCode == 13){
Sendmessages();
}
});
</script>
</body>
</html>
效果
相關文章
- Flutter 實現虎牙/鬥魚 彈幕效果Flutter
- 上週熱點回顧(10.11-10.17)
- 前端將資料轉化為彈幕效果的實現方式前端
- jQuery彈幕效果詳解jQuery
- 可實現B站 蒙版彈幕 效果的前端元件 —— Barrage UI前端元件UI
- ? 鬥魚彈幕php實現PHP
- 用Unity實現彈反效果Unity
- 前端實現彈幕效果的方法總結(包含css3和canvas的實現方式)前端CSSS3Canvas
- 如何不使用js實現滑鼠hover彈出選單效果JS
- js實現打字效果JS
- JS彈幕程式碼分析JS
- JavaScript彈幕效果程式碼詳解JavaScript
- 實現播放視訊及彈幕
- Go使用websocket實現彈幕功能GoWeb
- vue pc端實現 直播功能+彈幕Vue
- SpringAnimator彈簧聯動效果的實現Spring
- 簡單彈幕第二彈(c3animate實現)
- js 實現程式碼雨效果JS
- CSS + JS 實現打字機效果CSSJS
- EasyBarrage——Android平臺輕量級彈幕效果Android
- Laravel 廣播入門,彈幕的實現Laravel
- 用canvas實現一個vue彈幕元件CanvasVue元件
- Go實現基於WebSocket的彈幕服務GoWeb
- 那些不用js也能實現的效果JS
- JS實現馬賽克圖片效果JS
- 原生JS實現輪播圖的效果JS
- 使用 mask 實現視訊彈幕人物遮罩過濾遮罩
- H5移動端彈幕動畫實現H5動畫
- 用js(hover )+css實現下拉框效果(有效果圖)JSCSS
- JS和Css實現紅包雨的效果JSCSS
- [前端外掛] js返回頂部 效果實現前端JS
- 10.11
- 登入頁Activity從下向上的彈出效果實現
- Cocos Creator實戰-使用粒子資源實現螢幕點選效果
- Dplayer Html5 彈幕視訊播放器的實現HTML播放器
- 基於Electron + nodejs + 小程式 實現彈幕小工具(下篇)NodeJS
- 基於Electron + nodejs + 小程式 實現彈幕小工具(上篇)NodeJS
- 基於Electron + nodejs + 小程式 實現彈幕小工具(中篇)NodeJS