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
- Android彈幕功能實現,模仿鬥魚直播的彈幕效果Android
- 原生js實現的點選彈出螢幕居中對話方塊效果JS
- js實現彈出層滑鼠跟隨效果JS
- ? 鬥魚彈幕php實現PHP
- 前端將資料轉化為彈幕效果的實現方式前端
- jQuery彈幕效果詳解jQuery
- 可實現B站 蒙版彈幕 效果的前端元件 —— Barrage UI前端元件UI
- 前端實現彈幕效果的方法總結(包含css3和canvas的實現方式)前端CSSS3Canvas
- 用Unity實現彈反效果Unity
- Go使用websocket實現彈幕功能GoWeb
- 實現播放視訊及彈幕
- 自定義簡單彈幕實現
- JavaScript彈幕效果程式碼詳解JavaScript
- 如何不使用js實現滑鼠hover彈出選單效果JS
- 基於Electron + nodejs + 小程式 實現彈幕小工具(上篇)NodeJS
- 基於Electron + nodejs + 小程式 實現彈幕小工具(中篇)NodeJS
- 基於Electron + nodejs + 小程式 實現彈幕小工具(下篇)NodeJS
- JS彈幕程式碼分析JS
- vue pc端實現 直播功能+彈幕Vue
- RecyclerView實現的彈幕之中文DOCView
- iOS彈幕高效載入實現方式iOS
- 無線端的彈幕實現方案
- js實現打字效果JS
- 簡單彈幕第二彈(c3animate實現)
- 基於Electron + nodejs + 小程式 實現彈幕小工具(終篇)NodeJS
- 基於Electron + nodejs + 小程式 實現彈幕小工具(開篇)NodeJS
- VC實現螢幕變暗效果 (轉)
- Laravel 廣播入門,彈幕的實現Laravel
- 用canvas實現一個vue彈幕元件CanvasVue元件
- iOS彈幕(原始碼)實現原理解析iOS原始碼
- js實現的div元素尺寸彈性縮放效果程式碼例項JS
- canvas模擬彈幕效果程式碼例項Canvas
- 使用danmuplayer.js外掛實現Java web網站視訊發彈幕JSJavaWeb網站
- jquery實現的彈出居中視窗效果jQuery
- H5移動端彈幕動畫實現H5動畫
- Go實現基於WebSocket的彈幕服務GoWeb
- 用canvas實現視訊播放與彈幕功能Canvas