javascript實(shí)現(xiàn)視頻彈幕效果(兩個(gè)版本)
本文實(shí)例為大家分享了javascript實(shí)現(xiàn)視頻彈幕效果的具體代碼,供大家參考,具體內(nèi)容如下
基礎(chǔ)版本
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <style> * { margin: 0; padding: 0; } .dm { width: 800px; height: 600px; background-color: blue; margin: 0 auto; } .box { height: 500px; background-color: #000; position: relative; overflow: hidden; } video { width: 100%; height: 100%; } .info { text-align: center; margin-top: 20px; } input[type=text] { width: 500px; height: 50px; } input[type=button] { height: 50px; width: 100px; } span { position: absolute; /* 文本強(qiáng)制不換行 */ white-space: nowrap; font: bold 18px '微軟雅黑'; } </style> </head> <body> <div class="dm"> <div class="box"> <video src="m.mp4" controls></video> </div> <div class="info"> <input type="text" maxlength="30" id="txt"> <input type="button" value="發(fā)射" id="emit"> </div> </div> <script src="jquery-1.12.4.js"></script> <script> // 0. 用一個(gè)數(shù)組保存一組顏色值 var colors = ['red', 'green', 'yellow', '#fff', 'pink', 'blue']; // 1. 給發(fā)射按鈕注冊(cè)點(diǎn)擊事件 $('#emit').click(function () { // 2. 獲取文本框的內(nèi)容 var v = $('#txt').val(); // 3. 創(chuàng)建span標(biāo)簽,并設(shè)置內(nèi)容,設(shè)置樣式,最后追加到類(lèi)名為box的div中 var $span = $('<span></span>'); $span.text(v) .css({ left: $('.box').width(), top: parseInt(Math.random() * $('.box').height()), color: colors[parseInt(Math.random() * colors.length)] }).appendTo('.box'); // 4. 讓當(dāng)前的span產(chǎn)生動(dòng)畫(huà) left 為-span的寬度 $span.animate({ left: -1 * $span.width() }, 6000, 'linear', function () { // 當(dāng)動(dòng)畫(huà)結(jié)束后,刪除該元素 $span.remove(); }) }); </script> </body> </html>
加強(qiáng)版本
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <style> * { margin: 0; padding: 0; } .dm { width: 800px; height: 600px; background-color: blue; margin: 0 auto; } .box { height: 500px; background-color: #000; position: relative; overflow: hidden; } video { width: 100%; height: 100%; } .info { text-align: center; margin-top: 20px; } input[type=text] { width: 500px; height: 50px; } input[type=button] { height: 50px; width: 100px; } span { position: absolute; /* 文本強(qiáng)制不換行 */ white-space: nowrap; font: bold 18px '微軟雅黑'; } </style> </head> <body> <div class="dm"> <div class="box"> <!-- controls 如果出現(xiàn)該屬性,則向用戶(hù)顯示控件,比如播放按鈕。 --> <video src="m.mp4" controls></video> </div> <div class="info"> <input type="radio" value="" id="ban" name="1">精簡(jiǎn)</input> <input type="radio" value="" id="vip" name="1">VIP尊享</input> <input type="text" maxlength="30" id="txt"> <input type="button" value="發(fā)射" id="emit"> </div> </div> <script src="jquery-1.12.4.js"></script> <script> // 0. 用一個(gè)數(shù)組保存一組顏色值 var colors = ['red', 'green', 'yellow', '#fff', 'pink', 'blue']; //定義一個(gè)變量,定義其他樣式的 b = 0 $('#ban').click(function () { b = 1; }); $('#vip').click(function () { b = 2; }); // 1. 給發(fā)射按鈕注冊(cè)點(diǎn)擊事件 $('#emit').click(function () { // 2. 獲取文本框的內(nèi)容 var v = $('#txt').val(); // 3. 創(chuàng)建span標(biāo)簽,并設(shè)置內(nèi)容,設(shè)置樣式,最后追加到類(lèi)名為box的div中 var $span = $('<span></span>'); //定義CSS樣式,讓它是一個(gè)數(shù)組形式表現(xiàn) css = [{ "left": $('.box').width(), "top": parseInt(Math.random() * $('.box').height()), "color": colors[parseInt(Math.random() * colors.length)] }, { "left": $('.box').width(), "top": parseInt(Math.random() * ($('.box').height() / 2)), "color": colors[parseInt(Math.random() * colors.length)] }, { "left": $('.box').width(), "top": parseInt(Math.random() * $('.box').height()), "color": "yellow", "fontSize": 50, "fontFamily": "楷體" } ] //看看能不能打印出數(shù)組中的東西 // console.log(abc[1]) $span.text(v) .css(css[b]) .appendTo('.box'); // 4. 讓當(dāng)前的span產(chǎn)生動(dòng)畫(huà) left 為-span的寬度 //打印出文本長(zhǎng)度 // console.log(v.length) $span.animate({ left: -1 * $span.width() }, (30 - v.length) * 333, 'linear', function () { // 當(dāng)動(dòng)畫(huà)結(jié)束后,刪除該元素 $span.remove(); }) }); </script> </body> </html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
div浮層,滾動(dòng)條移動(dòng),位置保持不變的4種方法匯總
這篇文章主要是對(duì)div浮層,滾動(dòng)條移動(dòng),位置保持不變的4種方法進(jìn)行了匯總介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12JavaScript利用canvas實(shí)現(xiàn)星空效果
Canvas對(duì)于我們前端來(lái)說(shuō)是一個(gè)非常強(qiáng)大的工具,它可以實(shí)現(xiàn)各種復(fù)雜的圖形和動(dòng)畫(huà)效果,我們?nèi)绻軌蚴炀氄莆账?我們就可以做很多炫酷的效果,本文就給大家介紹了用canvas畫(huà)出一片星空的方法,需要的朋友可以參考下2023-11-11掃微信小程序碼實(shí)現(xiàn)網(wǎng)站登陸實(shí)現(xiàn)解析
這篇文章主要介紹了掃微信小程序碼實(shí)現(xiàn)網(wǎng)站登陸實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Javascript實(shí)現(xiàn)秒表倒計(jì)時(shí)功能
這篇文章主要為大家詳細(xì)介紹了Javascript實(shí)現(xiàn)秒表倒計(jì)時(shí)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11用JavaScript調(diào)用WebService的示例
JavaScript用htc實(shí)現(xiàn)WebService的調(diào)用2008-04-04uni-app開(kāi)發(fā)案例之video視頻組件
最近uni-app使用video組件碰到的一系列問(wèn)題,所以下面這篇文章主要給大家介紹了關(guān)于uni-app開(kāi)發(fā)案例之video視頻組件的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09