日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

JavaScript css3實現簡單視頻彈幕功能

瀏覽:433日期:2023-05-31 09:16:06

本文嘗試寫了一個demo模擬了最簡單的視頻彈幕功能。

思路:

設置一個<div>和所播放的video的大小一致,把這個div標簽蒙在video上面用于放置彈幕。在video的右邊放一個<ul>列表用于顯示彈幕列表。

屏幕上面的彈幕,把內容放在<span>標簽里面,一般一行字都是從左邊飛到右邊, 為了簡單起見,這個移動就用了CSS3 的transition 屬性。position設置為absolute,那么就用的transition過度left屬性,實現彈幕的移動。當然要注意設置其父元素的樣式 overflow:hidden; 這樣當字體飛出去的時候,就會隱藏飛出去的部分。

當點擊發送的時候,獲取input中的內容、當前日期、視頻播放的進度video.currentTime,把這個內容作為一個對象存入一個數組中。把放置彈幕的span標簽加入到div蒙版里,設置它的left,transition就會從當前left過度到下一個left,所以實現了移動。過渡完之后這個span標簽就沒用了,用removeChild把它中父元素中移除。同時把生成的<li>標簽加入到ul中。

代碼:

<!--Created by CC on 2017/10/11--> <!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Title</title></head><style type='text/css'> .mainBody{margin: 10px auto;text-align: center;font-family: arial;position:relative; } .send{ width:700px;margin:0px auto;text-align:left; } .my-msg{ width:85%; height:35px; } .my-btn{background-color: #ccd0d7;border-radius: 8px;width: 50px;height: 35px;margin-left:30px;border:1px solid #00a1d6; } .my-list{display:inline-block;vertical-align: top;border:1px solid #ccd0d7;width:200px;height:450px;overflow: auto; } .my-tm{position:absolute;top:0px;height:366px;width: 710px;overflow:hidden; } .rtol{position:absolute;display: inline-block;height:28px;overflow: hidden;font-size:24px;color:#fff;left:720px;-moz-transition:left 4s linear;-webkit-transition:left 4s linear;-o-transition:left 4s linear; } ul{text-align: left;list-style-type:none;margin-top:0px;padding-left: 8px; } li span {text-align: left;color: #99a2aa; }</style><body><div> <div class='mainBody'><div style='display:inline-block'><video src='https://rkxy.com.cn/big_buck_bunny.mp4' controls></video><div class='send'> <input type='text' placeholder='發送彈幕~'> <input type='button' value='發送'></div></div><div class='my-list'> <span style='color: #00a1d6'>~彈幕~</span> <hr /> <ul id='msg'> </ul></div><div id='tmbox'></div> </div></div><script> var tm=document.getElementById(’tmbox’); var btn=document.getElementById(’sendcc’); var video=document.getElementsByTagName(’video’)[0]; var list=document.getElementById(’msg’); var msg=document.getElementById(’msgcc’); var infor=[]; window.οnlοad=function() {//設置位置 tm.style.left=(document.body.offsetWidth-911)/2+’px’; } window.οnresize=function(){tm.style.left=(document.body.offsetWidth-911)/2+’px’; } //獲取當前日期 function getNowFormatDate() {var date = new Date();var seperator1 = '-';var seperator2 = ':';var month = date.getMonth() + 1;var strDate = date.getDate();if (month >= 1 && month <= 9) { month = '0' + month;}if (strDate >= 0 && strDate <= 9) { strDate = '0' + strDate;}var currentdate = month + seperator1 + strDate + ' ' + date.getHours() + seperator2 + date.getMinutes();return currentdate; } //按下發送鍵 btn.οnclick=function(){var value=msg.value;if(value&&value!=’’){ var itemInfor={}; itemInfor.value=value; itemInfor.showTime=video.currentTime; //時間 itemInfor.sendTime=getNowFormatDate(); //發送時間 //彈幕列表 var li=document.createElement(’li’); li.className=’my-li’; li.innerHTML='<span> > '+value+'</span>'; list.appendChild(li); //當前彈幕 var text=document.createElement(’span’); text.className=’rtol’; text.style.top=Math.floor( Math.random()*12 )*30+’px’; text.innerHTML=value; tm.appendChild(text); //左邊位置 setTimeout(function(){text.style.left=-value.length*25+’px’; },200); //之后把不顯示的span刪除 setTimeout(function(){ tm.removeChild(text) //防止已有彈幕和當前發送的顯示沖突,在這里加入到數組中 infor.push(itemInfor);},5000 )} } //顯示已有彈幕 setInterval(function(){ if(video.paused==false) { infor.forEach(function(item){ var currentTime=video.currentTime; if(item.showTime<video.currentTime&&item.showTime>=(video.currentTime-0.5)) { var text=document.createElement(’span’); text.className=’rtol’; text.style.top=Math.floor( Math.random()*12 )*30+’px’; text.innerHTML=item.value; tm.appendChild(text); //左邊位置 setTimeout(function(){ text.style.left=-(item.value.length*25)+’px’; },200); //之后把不顯示的span刪除 setTimeout(function(){ tm.removeChild(text); },5000 ) } }); } },500)</script> </body></html>

效果:

JavaScript css3實現簡單視頻彈幕功能

雖然這樣寫很簡單,但是有個很大的問題就是transition過渡left屬性不能暫停,所以自然這個transition動畫就只能等它執行完。或者說每個<span>標簽的移動都用interval定時器來完成移動。不過這樣寫就要復雜一些。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲啊v在线| 欧美黄页在线免费观看| 999精品在线| 日本在线成人| 牛牛精品成人免费视频| 欧美有码在线| 欧美亚洲人成在线| 中文无码久久精品| 另类av一区二区| 黄色av日韩| 99国产精品视频免费观看一公开| 欧美日韩国产高清| 亚洲一区网站| 亚洲精品在线二区| 日韩av不卡一区二区| **爰片久久毛片| 国产精品视频一区二区三区四蜜臂| 日韩高清在线不卡| 欧美日韩1区| 国产精品va视频| 日韩一区二区免费看| 伊人精品在线| 福利视频一区| 色天使综合视频| 欧美日韩国产综合网| 亚洲一二av| 国产精品白丝一区二区三区| 日韩成人精品一区| 亚洲二区免费| 亚洲丝袜啪啪| 麻豆精品在线观看| 日韩精品一页| 国产精品欧美在线观看| 另类中文字幕国产精品| 日韩av字幕| 欧美网站在线| 91视频久久| 在线精品一区二区| 成人三级高清视频在线看| 中文视频一区| 色天使综合视频| 久久国产乱子精品免费女| 日本欧美在线看| 亚洲欧洲一区| 欧美日韩亚洲一区二区三区在线| 三上亚洲一区二区| 免费看黄色91| 精品不卡一区| 国产a亚洲精品| 丝袜美腿亚洲一区| 午夜精品影视国产一区在线麻豆| 国产在视频一区二区三区吞精| 亚洲免费黄色| 天堂а√在线最新版中文在线| 久久国内精品视频| 中文亚洲欧美| 日韩一区二区免费看| 91精品成人| 亚洲高清二区| 日韩中文字幕一区二区三区| 国产超碰精品| 久久精品国产久精国产| 日韩不卡一区二区三区| 中文一区二区| 国户精品久久久久久久久久久不卡 | 国产亚洲精品美女久久久久久久久久| 欧美91福利在线观看| 国产成人精品一区二区三区在线| 日韩精品视频网站| 麻豆精品91| 成人午夜毛片| 久久视频国产| 日韩视频久久| 精品欧美日韩精品| 国产九九精品| 奇米亚洲欧美| 日欧美一区二区| 免费国产亚洲视频| 欧美日韩精品一区二区视频| 91欧美精品| 久久影院一区| 欧美国产先锋| 亚洲精品九九| 国产精品免费看| 91精品韩国| 麻豆极品一区二区三区| 日韩精品一页| 视频一区二区欧美| 尤物tv在线精品| 欧洲av不卡| 精品中文在线| 国产免费av国片精品草莓男男| 蜜桃视频在线观看一区| 九一国产精品| 精精国产xxxx视频在线野外| 91精品丝袜国产高跟在线| 香蕉成人久久| 91精品观看| 亚洲成人av观看| 精品国产亚洲一区二区三区大结局| 一区二区三区国产在线| 影音先锋国产精品| 日韩激情一区二区| 欧美欧美黄在线二区| 亚洲我射av| 国产亚洲激情| 欧美日韩黑人| 国产综合婷婷| 欧美va亚洲va日韩∨a综合色| 精品精品国产三级a∨在线| 丝袜美腿亚洲一区| 红桃视频国产一区| 国产一区亚洲| 99久久亚洲精品蜜臀| 天堂av在线| 国产亚洲一区二区手机在线观看| 国产videos久久| 久久精品五月| 国产精品久久久久久久久久10秀 | 日韩av在线中文字幕| 国产精品一二| 日本aⅴ精品一区二区三区| 一二三区精品| 婷婷亚洲精品| 欧美专区一区| 91精品国产自产精品男人的天堂| 日韩中文av| 国产日产精品_国产精品毛片| 欧美三级第一页| 国产精品欧美在线观看| 国产极品模特精品一二| 欧美国产先锋| 国产日韩高清一区二区三区在线 | 久久精品国产99国产| 日本一区福利在线| 日韩一区二区三区高清在线观看| 好吊一区二区三区| 日韩一区精品字幕| 亚洲日本欧美| 欧美性感美女一区二区| 92国产精品| 香蕉视频亚洲一级| 国产精品嫩草99av在线| 国产日韩欧美一区二区三区在线观看| 国产精品hd| 日韩精品一区第一页| 国产极品模特精品一二| www.51av欧美视频| 99视频精品| 国产日韩在线观看视频| 高清av不卡| 亚洲久久视频| 国产成人精品福利| 国产视频一区免费看| 日韩成人三级| 欧美日韩国产免费观看| 免费欧美在线视频| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 久久久久久黄| 亚洲免费毛片| 97精品中文字幕| 亚洲三区欧美一区国产二区| 麻豆精品蜜桃视频网站| 国产精品三上| 国产一区国产二区国产三区| 欧美专区18| 岛国精品一区| 视频一区二区三区在线| 精品国产一区二区三区噜噜噜| 99久久久国产精品美女| 国产欧美高清视频在线| 不卡在线一区二区| 久久只有精品| 亚洲日本在线观看视频| 久久精品国语| 国产精品mm| 亚洲精品护士| 日本精品影院| 国产精品久久久久9999高清| 99re国产精品| 欧美一区久久久| 国产精品日本一区二区不卡视频| 欧美日韩国产探花| 精品视频91| 日本免费在线视频不卡一不卡二| 在线成人动漫av| 国产高潮在线| 国产精品一区二区美女视频免费看| 午夜亚洲一区| 久久久噜噜噜| 狠狠久久伊人中文字幕| 日韩久久99| 老司机精品久久| 久久久一二三| 97国产精品| 精品五月天堂| 国产欧美日韩精品一区二区免费| 一区二区三区四区日韩| 亚洲调教视频在线观看| 日韩av有码|