簡單彈幕第二彈(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
- Android彈幕功能實現,模仿鬥魚直播的彈幕效果Android
- 簡單實現具有彈性的ListViewView
- Go使用websocket實現彈幕功能GoWeb
- Flutter 實現虎牙/鬥魚 彈幕效果Flutter
- 實現播放視訊及彈幕
- vue pc端實現 直播功能+彈幕Vue
- RecyclerView實現的彈幕之中文DOCView
- iOS彈幕高效載入實現方式iOS
- 無線端的彈幕實現方案
- Laravel 廣播入門,彈幕的實現Laravel
- 用canvas實現一個vue彈幕元件CanvasVue元件
- iOS彈幕(原始碼)實現原理解析iOS原始碼
- Web實時彈幕原理分析Web
- H5移動端彈幕動畫實現H5動畫
- Go實現基於WebSocket的彈幕服務GoWeb
- JS實現彈幕效果(10.11—10.17)JS
- 用canvas實現視訊播放與彈幕功能Canvas
- 彈幕外掛
- 彈彈彈,彈走魚尾紋的彈出選單(vue)Vue
- 使用 mask 實現視訊彈幕人物遮罩過濾遮罩
- Flutter | 超實用簡單選單彈出框 PopupMenuButtonFlutter
- 論如何用Vue實現一個彈窗-一個簡單的元件實現Vue元件
- ios彈幕解決iOS
- CSS3建立簡單的網頁動畫–實現彈跳球動CSSS3網頁動畫
- Python實時爬取鬥魚彈幕Python
- WormHole分析第二彈Worm
- 新生答疑 第二彈
- python簡單遊戲-反彈球Python遊戲
- 簡單的網頁彈窗陷阱網頁
- 百萬線上的美拍直播彈幕系統架構實現架構
- Dplayer Html5 彈幕視訊播放器的實現HTML播放器
- html5 canvas實現高併發視訊彈幕功能HTMLCanvas
- 前端將資料轉化為彈幕效果的實現方式前端
- JS彈幕程式碼分析JS
- jQuery彈幕效果詳解jQuery
- 視訊彈幕外掛