整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          用純javascript實現斗魚直播彈幕效果,代碼也才這么點

          聊時看了下斗魚直播,突然靈感乍現,想做出這個彈幕效果,于是有了下文

          這里還是要說一下我的前端學習群:594959296,從我一個到現在的都是看我每一篇文章來的,可以說都是我們大前端的學霸啊,不定期分享干貨。想學到東西的都可以來,歡迎初學和進階中的小伙伴

          說明:彈幕分兩種:

          1、像優酷、愛奇藝等,記錄用戶發送彈幕時該視頻播放的位置,其他人播放這個視頻時到了這個點就顯示彈幕。

          2、像斗魚、熊貓這樣的直播網站,用戶發送彈幕直接顯示在屏幕上,以后不需要再顯示了。

          我們就來做第二種!!!

          實現效果

          項目分析

          1、獲取用戶輸入信息;

          2、在頁面中創建一個 <span></span>來放獲取到的文本,并添加一些樣式(字體大小、顏色等);

          3、給這個 span添加一個從右向左移動的動畫;

          4、動畫結束后,移除這個 <span>

          思路很清楚了,就來動手實現一下。。

          布局

          頁面中要有一個輸入框讓用戶輸入信息,還要一個盒子用來顯示彈幕。為了美觀,我多加了一些東西。

          1、#dm 是顯示彈幕的區域,input供用戶輸入信息(其中 placeholder 屬性規定輸入框中默認顯示內容)。

          2、其它元素都是為了美觀和布局。

          樣式

          跟以前一樣,先給出代碼然后再講解。

          1、首先還是格式化瀏覽器默認的 marginpaddingoverflow屬性設置超出屏幕的部分隱藏,這樣就不會出現下拉和水平的滾動條了。

          2、#dm用來顯示彈幕,我們把它的高度設置為 90vhvh 是 CSS3 中新增的長度單位,表示相對于視口的高度。視口高度被均分為100單位的vh,90vh 就表示當前瀏覽器可視區域高度的 90%。(vw 就是視口寬度)

          3、#dm span是每條彈幕的樣式。你可以修改為你喜歡的樣子,不過一定要設置 position
          定位屬性。

          4、然后就是下面的輸入部分了。使用了 flex布局 (也是CSS3 中新增的內容,太方便了)。只需要 align-items:center;justify-content:center; 這兩句就可以使其中的子元素在水平和垂直方向居中。所以 #idDom#content都使用了。

          5、然后就是 輸入框、按鈕的樣式了,沒什么好說的,應該都能看懂。

          JS部分

          先看看代碼吧。。

          1、說明:向頁面添加彈幕使用 addBarrage() 函數,添加動畫用 move()函數。(把一種功能封裝為一個函數是一個好習慣)

          2、首先思考一下彈幕的觸發事件。應該有兩個:點擊“發射”按鈕、按下 Enter按鍵。所以分別監聽點擊 和 鍵盤事件。

          3、然后就要思考怎么向頁面添加彈幕了?

          先得到用戶輸入的信息

          然后在頁面中創建一個

          <span></span>

          把得到的文本放進去

          添加到 #dm這個盒子中:

          • 這樣就可以了嗎?? 當然不是的。。

          4、每條彈幕應該有不同的顏色,這樣才炫酷。思路就是把預先的顏色放進一個數組,使用的時候用隨機的下標,這樣就獲得了隨機顏色。(借鑒斗魚的 7 中顏色)

          這樣每條彈幕就有不同的顏色了。

          5、每條彈幕在頁面上還要有不同的位置(高度),也就是不同的 top 值。我的想法是,雖然要有不同的 top ,但也不能太隨意。就像下面這樣:(一行是一行的)

          我的思路是:先判斷頁面可以放多少行?

          然后計算可以有的 top 值:(加 10 是為了不至于緊挨著屏幕頂部,最后的 -1 是為了不至于太靠下 )

          你可以自己理解一下我的這種計算方式。。

          然后應用給

          <span>

          即可:

          6、對了,彈幕應該添加到頁面的什么位置呢?因為彈幕要從右往左移動,所以應該添加到屏幕的右側,left 值為瀏覽器頁面的寬度。這時候就知道為什么前面要設置 body 的 overflow: hidden;了吧!!

          動畫

          彈幕(也就是<span>)被添加到頁面中了,我們要讓他動起來。思路就是寫一個函數,減少 <span>

          的 left 值。每隔幾毫秒執行一次這個函數,我們看起來這個 <span>元素就動起來了。

          7、但是有幾個問題:

          • 頁面中有多少個彈幕(<span>)?因為頁面中只有 彈幕 使用的是 <span> 標簽,所以這樣就可以獲取所有 <span>的 nodeList(類似數組但不是數組,可以使用下標索引訪問):

          怎樣記錄每條彈幕的 left 值?獲取到所有的 <span>后,用一個 for 循環將每一個 <span> 的 left 值放進一個數組:

          • 這樣 arr[] 就保存了所有彈幕的 left 值。

          8、接下來我們就逐個減少每條彈幕的 left 值:

          9、最后判斷如果彈幕已經移出了頁面的左邊,就把這條彈幕刪除了吧。

          我們可以在開發工具中看一下這個過程:

          彈幕的 left 一直減小,移出頁面后 #dm中就沒有這個 <span>了。

          10、最后處理一個小細節吧!當我們點擊按鈕或按回車后,輸入框中的文字會保留,影響我們下次輸入,所以只要獲取到了用戶輸入的內容,就把輸入框清空吧!

          到此,彈幕就實現了。。。

          學習javascript也是有門檻的,就是你的html和css至少還比較熟練,您不能連html這東東是干啥的都不知道就開始學javascript了,學乘除前,學好加減法總是有益無害的。

          如果想看到更加系統的文章和學習方法經驗可以關注我的微信公眾號:‘web前端課程’關注后回復‘給我資料’可以領取一套完整的學習視頻

          取屏幕:當然,如果你有桌面或者除游戲外其他內容的錄制需求,或者有游戲無法識別,可以選擇截取屏幕選項。(需把游戲設置為無邊框或者窗口化)

          • 軟件版本:
          • 軟件大小:
          • 軟件授權:
          • 適用平臺:
          • http://dl.pconline.com.cn/download/372378.html

          全屏截取,顧名思義,既是伴侶獲得你的全屏畫面,你的屏幕出現什么,你的直播間中便出現什么內容。截取錄制,便是截屏的意思,你可以在屏幕中選取任意區域進行直播,選取什么內容,直播間便播出什么內容。

          pringCloudAlibaba高并發仿斗魚直播平臺實戰

          download:https://www.sisuoit.com/4118.html


          Spring簡介
          Spring它是一個結構,輕量級javaEE這個概念,也是由Spring結構衍生出來的
          Spring 甚是沒有太多新東西,它只是提取了javaEE運用中的常用代碼,將其籠統成為了結構
          spring 創始人 :Rod Johnson,他的專業不是計算機,而是音樂學,但他也是一個計算機博士
          Spring的結構里充滿了各種規劃形式,spring結構的用法,源碼規劃更是一套豐富的java大餐
          spring的組成

          在這里插入圖片描述
          如上是Spring的七個模塊,每個模塊都是獨立存在,模塊與模塊可以相互組合運用
          (摘錄狂神說java)

          中心容器:中心容器供給 Spring 結構的基本功能。中心容器的首要組件是 BeanFactory,它是工廠形式的完成。BeanFactory 運用操控回轉(IOC) 形式將運用程序的裝備和依靠性規范與實踐的運用程序代碼分隔。

          Spring 上下文:Spring 上下文是一個裝備文件,向 Spring 結構供給上下文信息。Spring 上下文包含企業服務,例如 JNDI、EJB、電子郵件、國際化、校驗和調度功能。

          Spring AOP:經過裝備辦理特性,Spring AOP 模塊直接將面向切面的編程功能 , 集成到了 Spring 結構中。所以,可以很容易地使 Spring 結構辦理任何支撐 AOP的目標。Spring AOP 模塊為基于 Spring 的運用程序中的目標供給了業務辦理服務。經過運用 Spring AOP,不用依靠組件,就可以將聲明性業務辦理集成到運用程序中。

          Spring DAO:JDBC DAO 籠統層供給了有意義的反常層次結構,可用該結構來辦理反常處理和不同數據庫供應商拋出的過錯音訊。反常層次結構簡化了過錯處理,并且極大地降低了需要編寫的反常代碼數量(例如翻開和關閉銜接)。Spring DAO 的面向 JDBC 的反常遵照通用的 DAO 反常層次結構。

          Spring ORM:Spring 結構插入了若干個 ORM 結構,從而供給了 ORM 的目標關系工具,其中包含 JDO、Hibernate 和 iBatis SQL Map。所有這些都遵照 Spring 的通用業務和 DAO 反常層次結構。

          Spring Web 模塊:Web 上下文模塊建立在運用程序上下文模塊之上,為基于 Web 的運用程序供給了上下文。所以,Spring 結構支撐與 Jakarta Struts 的集成。Web 模塊還簡化了處理多部分懇求以及將懇求參數綁定到域目標的工作。

          Spring MVC 結構:MVC 結構是一個全功能的構建 Web 運用程序的 MVC 完成。經過策略接口,MVC 結構變成為高度可裝備的,MVC 包容了很多視圖技術,其中包含 JSP、Velocity、Tiles、iText 和 POI。


          從某種意義上說,Spring結構更像一種中間容器,Spring結構向上可以兼容MVC,向下可以與各種持久層結構無縫銜接,,簡略的說,他就是膠水,而這也找出來,如果有一天你想將Spring結構,從程序中分離出來,那將會費很大的力氣。不過的確好用。


          主站蜘蛛池模板: 久久精品一区二区三区中文字幕 | 无码精品久久一区二区三区 | 色妞色视频一区二区三区四区| 亚洲第一区精品日韩在线播放| 亚洲一区二区三区无码中文字幕| 伊人久久精品无码av一区| 人妻无码第一区二区三区 | 天天看高清无码一区二区三区 | 中文激情在线一区二区| 国产中的精品一区的| 国产精品乱码一区二区三区| 亚洲AV无码一区二区二三区软件 | 亚洲AⅤ视频一区二区三区| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 在线播放偷拍一区精品| 日本人真淫视频一区二区三区| 国产精品一区三区| 国产在线乱子伦一区二区| 日本免费一区尤物| 美女福利视频一区| 天天视频一区二区三区| 天堂不卡一区二区视频在线观看 | 国产亚洲欧洲Aⅴ综合一区| 国产av熟女一区二区三区| 中文字幕av一区| 在线精品国产一区二区三区| 亚洲一本一道一区二区三区| 岛国精品一区免费视频在线观看| 国产经典一区二区三区蜜芽| 日韩社区一区二区三区| 色婷婷一区二区三区四区成人网| 波多野结衣中文字幕一区二区三区| 亚洲一区二区三区影院| 精品国产高清自在线一区二区三区| 国产精品一区二区av| 一区二区三区午夜| 精品一区二区三区AV天堂| 国产精品无码一区二区三区在| 日韩人妻不卡一区二区三区| 国产精品免费一区二区三区四区 | 国产精品免费综合一区视频|