彈幕網站很復雜?教你10分鍾在華為雲鯤鵬彈性雲服務器上部署好!


摘要:從零代碼開始,10分鍾快速開發一個可以發送彈幕的網站,並將其部署在華為雲服務器上;學完本期教程,將知道如何使用Nginx、如何將自己的網站部署到雲服務器上。

直播相信大家都不陌生了吧,大家經常會到游戲、淘寶等各種明星大神的直播間觀看。而一談到直播,肯定會看到滿屏幕飄來飄去的彈幕。作為程序員首先想到的問題是,這些彈幕網站開發困難嗎?我想說,真的 so easy!B站UP主-神奇的老黃今天就從零代碼開始,教大家10分鍾快速開發一個可以發送彈幕的網站。還等什么呢,動起來吧~~

開發思路

首先是讓彈幕的隨機高度出現,這個計算方法是:最大高度=屏幕的高度-發送div的高度-彈幕本身的高度,范圍就是 0-最大高度了,彈幕總是從右往左移動,所以出現最右側的位置計算方法是:最右側位置=屏幕的寬度-彈幕本身的寬度;接下來就是設置隨機顏色,顏色按照‘#aabbcc’這種格式,利用Math.random()隨機數生成;最后是彈幕的發送,首先是獲取輸入框中的值,然后新創建一個div,並設置隨機顏色、位置等屬性,調用init() 函數。

總結如下步驟:

1、獲取彈幕對象:隨機高度、初始化顏色

2、水平期間設置范圍:瀏覽器寬度-彈幕對象的高度

3、移動功能函數:定時器 setInterval

4、實現用戶發表彈幕

用到的知識點

1、首先頁面搭建,就是這些東西是如何擺放的——html+css布局

2、彈幕字體的位置和樣色設置——css樣式

3、可以輸入文字然后點擊可以發送彈幕——按鈕的點擊事件

4、字體可以旋轉——css動畫

5、彈幕字體可以從右往左滑動——js控制字體對象的style屬性

代碼塊

style代碼

<style type="text/css">
 * {
 margin: 0;
 padding: 0;
 }
 
 .screen {
 width: 100%;
 height: 100%;
 position: absolute;
 top: 0;
 left: 0;
 }
 
 .send {
 width: 100%;
 height: 76px;
 background: #333;
 position: absolute;
 bottom: 0;
 left: 0;
 text-align: center;
 line-height: 76px;
 }
 
 
 .send .s_txt {
 width: 600px;
 height: 36px;
 border: 0;
 border-radius: 3px 0 0 3px;
 font-size: 16px;
 line-height: 36px;
 }
 
 .send .s_sub {
 width: 100px;
 height: 37px;
 background: #65c33d;
 border: 0;
 font-size: 14px;
 color: #fff;
 border-radius: 0 3px 3px 0;
 cursor: pointer;
 }
 
 .send .s_sub:hover {
 background: #3eaf0e;
 }
 
 .screen div {
 position: absolute;
 top: 76px;
 left: 0;
 font-size: 22px;
 color: red;
 }
 
 .magictime {
 animation-duration: 1s;
 animation-name: magictime;
 }
 
 @keyframes magictime {
 0% {
 opacity: 0;
 transform-origin: 100% 0;
 transform: scale(0, 0) rotate(360deg) translateY(100%);
 }
 
 30% {
 transform-origin: 100% 0;
 transform: scale(0, 0) rotate(360deg) translateY(100%);
 }
 
 100% {
 opacity: 1;
 transform-origin: 0 0;
 transform: scale(1, 1) rotate(0deg) translateY(0);
 }
 }
 </style> 

彈幕滾動div代碼

<div class="screen">
 <div>這是一條彈幕!</div>
 <div>這是另一條彈幕!</div>
 <div>老黃最帥~~~</div>
 <div>沒錯,這又是一條彈幕!</div>
 <div>這里都是彈幕</div>
 <div>前方高能!!!</div>
</div> 

發送彈幕div代碼

<div class="send">
 <input type="text" class="s_txt" />
 <input type="button" id="send_sub" value="發表評論" class="s_sub" />
</div> 

javascript邏輯代碼

<script>
 var oShowList = document.querySelectorAll('.screen div')
 var oShow = document.querySelector('.screen')
 var oSend = document.querySelector('.send')
 var oText = document.querySelector('.s_txt')
 var oBtn = document.querySelector('#send_sub')
 oBtn.onclick = function () {
 var oDiv = document.createElement('div')
 oDiv.innerHTML = oText.value;
 oDiv.className = 'magictime';
 oShow.appendChild(oDiv)
 init(oDiv)
 oText.value = ''
 }
 for (var i = 0; i < oShowList.length; i++) {
 init(oShowList);
 }
 function init(obj) {
 var screenHeight = document.documentElement.clientHeight;//獲取瀏覽器高度
 var screenWidth = document.documentElement.clientWidth;//獲取瀏覽器寬度
 var sendHeight = oSend.clientHeight;
 var maxTop = screenHeight - sendHeight - obj.clientHeight;
 var maxLeft = screenWidth - obj.clientWidth;
 obj.style.top = Math.random() * maxTop + 'px'
 obj.style.left = maxLeft + 'px'
 obj.style.color = randomColor()
 move(obj, maxLeft)
 }
 function randomColor() {
 var color = '#';
 for (var i = 0; i < 6; i++) {
 color += Math.floor(Math.random() * 16).toString(16)
 }
 return color;
 }
 function move(obj, maxLeft) {
 maxLeft -= 3;
 if (maxLeft > -obj.clientWidth) {
 obj.style.left = maxLeft + 'px'
 requestAnimationFrame(function () {
 move(obj, maxLeft)
 });
 } else {
 oShow.removeChild(obj)
 }
 }
 </script> 

安裝部署

首先領取一個月的免費服務器,如果通過我這里注冊,還可以領取200元的代金券,可多購買兩個月的服務器領取地址,然后系統選擇Ubuntu 18.04 server 64bit,設置密碼,領取后按照以下步驟初始化:

首先修改一下安全組,點擊控制台-彈性雲服務器,點擊實例名字

點擊安全組-更改安全組

添加以下端口配置

在網頁上遠程登錄

也可以通過xshell登錄,用戶名為root,密碼為之前設置的,如果忘了可以選擇重置系統

安裝nginx

 更新一下系統
apt-get update
 
# 安裝:
apt-get install nginx
 
# 安裝上傳工具
apt install lrzsz 

配置nginx

# 上傳彈幕的文件
cd /var/www/htm/
rz  # 選取彈幕網頁文件  index.html,可在附件下載
 
# 啟動:
nginx -c /etc/nginx/nginx.conf 
 
# 訪問
訪問自己的公網IP即可,老黃的是 http://124.70.138.209/ 

開發視頻

好啦,最后在附上相關素材,以上就是開發一個可以發送彈幕網站的完整過程了,怎么樣學會了嗎?沒學會,那就重新再看一遍吧~~~~

大家還可以免費學習WEB前端全棧教程,各位小伙伴們一起來學習吧~,傳送門--->WEB前端全棧成長計划

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM