簡單彈幕第二彈(c3animate實現)
Css3 animate屬性實現彈幕效果
程式碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
.box {
width: 720px;
height: 450px;
margin: 100px auto;
}
video,
input {
outline: none;
}
input {
width: 554px;
height: 26px;
}
input[type="color"] {
width: 50px;
height: 28px;
vertical-align: middle;
}
button {
width: 100px;
height: 30px;
cursor: pointer;
}
#mv {
width: 720px;
height: 406px;
font-size: 20px;
font-weight: 500;
position: relative;
margin-bottom: 5px;
overflow: hidden;
}
span {
animation: go 10s linear 1;
/* 強制一行顯示 */
white-space: nowrap;
/* */
letter-spacing: 1px;
/* transform-origin: right; */
display: inline-block;
}
@keyframes go {
0% {
transform: translate(0);
}
100% {
/* 不可行 */
/* transform: translate(calc(-100%)); */
/* 不可行 */
/* transform: translate(calc(-100%-720px)); */
/* 通過限制字元長度,強制計算的結果 */
transform: translate(-1350px);
}
}
</style>
</head>
<body>
<div class="box">
<div id="mv">
<video src="./jay.mp4" controls></video>
</div>
<!-- maxlength 最多可輸入20個字元 -->
<input type="text" id="txt" maxlength="30">
<input type="color" id="color">
<button id="btn">傳送</button>
</div>
<script>
// 獲取元素
var color = document.getElementById("color")
var txt = document.getElementById("txt")
var mv = document.getElementById("mv")
var btn = document.getElementById("btn")
// 儲存預設顏色值
var newColor = '#000';
// 獲取到更換的顏色值
color.onchange = function () {
newColor = color.value
}
// 給傳送按鈕註冊事件
btn.onclick = function () {
var span = document.createElement("span")
// 設定彈幕顏色
span.style.color = newColor
// 把txt的value值賦值給span
span.innerText = txt.value
// 給絕對定位脫標
span.style.position = "absolute"
// 設定動畫,秒數隨機
var s = Math.random() * 12 + 5
span.style.animation = `go ${s}s linear 1`
// 隨機定位top
span.style.top = Math.random() * 350 + 5 + 'px'
// 設定上層顯示
span.style.zIndex = "50"
// 將span放到mv盒子裡
mv.appendChild(span)
// 傳送後清空txt文字框
txt.value = ""
// 定時清除彈幕標籤
var time = s * 1000
setTimeout(function () {
mv.removeChild(span)
}, time)
}
// 按Enter觸發 傳送按鈕的點選事件
document.onkeydown = function (e) {
if (e.keyCode === 13)
btn.click();
}
</script>
</body>
</html>
相關文章
- ? 鬥魚彈幕php實現PHP
- 實現播放視訊及彈幕
- Go使用websocket實現彈幕功能GoWeb
- JS實現彈幕效果(10.11—10.17)JS
- Flutter 實現虎牙/鬥魚 彈幕效果Flutter
- vue pc端實現 直播功能+彈幕Vue
- 用canvas實現一個vue彈幕元件CanvasVue元件
- Laravel 廣播入門,彈幕的實現Laravel
- Go實現基於WebSocket的彈幕服務GoWeb
- 彈幕外掛
- Flutter | 超實用簡單選單彈出框 PopupMenuButtonFlutter
- H5移動端彈幕動畫實現H5動畫
- 使用 mask 實現視訊彈幕人物遮罩過濾遮罩
- 彈彈彈,彈走魚尾紋的彈出選單(vue)Vue
- 論如何用Vue實現一個彈窗-一個簡單的元件實現Vue元件
- Python實時爬取鬥魚彈幕Python
- CSS3建立簡單的網頁動畫–實現彈跳球動CSSS3網頁動畫
- WormHole分析第二彈Worm
- 新生答疑 第二彈
- RestSharp 元件第二彈REST元件
- python簡單遊戲-反彈球Python遊戲
- 簡單的網頁彈窗陷阱網頁
- 基於Electron + nodejs + 小程式 實現彈幕小工具(下篇)NodeJS
- 基於Electron + nodejs + 小程式 實現彈幕小工具(上篇)NodeJS
- 基於Electron + nodejs + 小程式 實現彈幕小工具(中篇)NodeJS
- 前端將資料轉化為彈幕效果的實現方式前端
- Dplayer Html5 彈幕視訊播放器的實現HTML播放器
- JS彈幕程式碼分析JS
- jQuery彈幕效果詳解jQuery
- 彈幕不擋人!基於色鍵技術的純客戶端實時蒙版彈幕客戶端
- video標籤製作簡易版彈幕視訊IDE
- Python Turtle實現彈球Python
- ARC 雜記第二彈
- 可實現B站 蒙版彈幕 效果的前端元件 —— Barrage UI前端元件UI
- 基於Electron + nodejs + 小程式 實現彈幕小工具(開篇)NodeJS
- 百萬線上的美拍直播彈幕系統架構實現架構
- 基於Electron + nodejs + 小程式 實現彈幕小工具(終篇)NodeJS
- 模仿UP主,用Python實現一個彈幕控制的直播間!Python