亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

CSS3 實現彈幕的示例代碼

2024-07-11 08:58:30
字體:
來源:轉載
供稿:網友

最近需要項目需要實現彈幕,網上參考了各種方法,最后覺得transform+transition實現的效果在移動設備上性能最好,在iphone6和紅米4上測試,看不到卡頓的感覺。用jquery的animate動畫在移動設備上有明顯的卡頓。

1.首先創建彈幕區域

<div class="barrage"><div class="mask"><!--//彈幕內容--></div></div><input type="text" ng-model="data.comment"/><button ng-click="addDanmu()">說兩句</button >

2.css

.webPage .barrage{width:100%;height:22%;position: absolute; bottom: 50px; background-color: transparent;pointer-events: none;}.webPage .barrage .mask{width:100%;height:100%;background:transparent;z-index:100;}

注:以上html,css根據自己需求來即可

3.js

$scope.data = {comment:''};$scope.danmuCount = 5; //最大彈幕行數$scope.danmus = ['1545466666還是','9777777','哈哈哈哈哈','對企業讀完后環球網好齊齊哈','42115我我我5','556噢噢噢噢45','54哦','54545646','666但近段時間66','56565','454465465565', '1545466666還是','9777777','哈哈哈哈哈','對企業讀完后環球網好齊齊哈','42115我我我5','556噢噢噢噢45','54哦','54545646','666但近段時間66','56565','454465465565']; //彈幕數據源//創建彈幕區域$scope.createDanmuContent = function () {var height = 1 / $scope.danmuCount * 100 + '%';for (var i = 0; i < $scope.danmuCount; i++) {var item = '<div style="width: 100%; height: '+height+'"></div>';$('.mask').append(item);} $scope.createDanmu ();};//開始彈幕繪制$scope.createDanmu = function () {var maxCount = 0;if ($scope.danmus.length > $scope.danmuCount) { maxCount = $scope.danmuCount; } else {maxCount = $scope.danmus.length;}var _left = window.screen.width;for (var i = 0; i < maxCount; i++) {var _lable = $("<p style='margin: 0;position: absolute;opacity:1;display:table;left: "+_left + 'px'+';color:'+$scope.getRandomColor()+"'>"+$scope.danmus[i]+"</p>");$(".mask div").each(function () {//檢測該區域是否繪制了彈幕if ($scope.checkDanmu($(this))) {$(this).append(_lable);$scope.moveArray(i); i--;return false;}});}$scope.init_barrage();};//將數組第一位放到最后一位,(因彈幕池內容太少,所以沒刪除已顯示的彈幕)$scope.moveArray = function (i) { var temp = $scope.danmus[i];$scope.danmus.splice(i,1);$scope.danmus.push(temp);}//判斷content區域有沒有彈幕$scope.checkDanmu = function (el) {return el.find('p').length == 0 ? true : false;};//獲取隨機顏色$scope.getRandomColor = function () {return '#' + (function(h){return new Array(7 - h.length).join("0") + h})((Math.random() * 0x1000000 << 0).toString(16))};//初始化彈幕參數$scope.init_barrage = function () {$(".mask div p").show().each(function() { var _moveLeft = window.screen.width+$(this).width();var time = 100000 / $(this).width() + 5000;//彈幕滑動時間$scope.addCssAnimate($(this),_moveLeft,time);});};//添加彈幕動畫$scope.addCssAnimate = function (el,_moveLeft,time) {el.css({'transform':'translateX('+-_moveLeft+'px)','transition':'all '+time+'ms'+ ' linear','-webkit-transform':'translateX('+-_moveLeft+'px)','-webkit-transition':'all '+time+'ms'+ ' linear','-moz-transform':'translateX('+-_moveLeft+'px)','-moz-transition':'all '+time+'ms'+ ' linear','-ms-transform':'translateX('+-_moveLeft+'px)','-ms-transition':'all '+time+'ms'+ ' linear'});//當動畫執行完畢后,將彈幕移到原處,更換彈幕文字,重新開始執行動畫,相當于對原本彈幕的復用$timeout(function () {//判斷彈幕池是否還有內容,如果沒有則移除彈幕if ($scope.danmus.length > 0) {el.css({'transform':'translateX(0px)','transition':'all 0ms linear','-webkit-transform':'translateX(0px)','-webkit-transition':'all 0ms linear','-moz-transform':'translateX(0px)','-moz-transition':'all 0ms linear','-ms-transform':'translateX(0px)','-ms-transition':'all 0ms linear'});$scope.resetAnimate(el);} else {el.remove();}},time);};//更換彈幕內容,重新開始彈幕動畫$scope.resetAnimate = function (el) {el.html($scope.danmus[0]);$scope.moveArray(0);var _moveLeft = el.width() + screen.width;var time = 100000 / el.width() + 5000;$scope.addCssAnimate(el,_moveLeft,time);};//評論,添加彈幕$scope.addDanmu = function () {var text = $scope.data.comment;if(text == ""){return;}$scope.danmus.unshift(text);};$scope.createDanmuContent();

至此,功能基本實現了。要關閉彈幕只需移除彈幕的區域,文中就沒有寫了。

邏輯:首先根據$scope.danmuCount來創建彈幕的行數,然后在每行里面添加彈幕,并添加相應的動畫。當一個動畫執行完畢后,將彈幕移回原處,更換彈幕內容,重新執行動畫,這樣避免了彈幕重疊。每條彈幕動畫執行時間是根據彈幕長度決定的。

個人經驗,希望大家指出不足。上述代碼使用的angularjs,但邏輯都是一樣

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕日韩av电影| 日韩av综合网| 国产精品免费久久久久影院| 中文字幕亚洲综合久久筱田步美| 久久夜色精品国产| 日韩av在线一区二区| 日韩a**站在线观看| 亚洲欧美另类中文字幕| 亚洲大胆人体av| 色综合久久88色综合天天看泰| 国产成人精品免费久久久久| 国产欧洲精品视频| 欧美做爰性生交视频| 亚洲嫩模很污视频| 97avcom| 欧美大片在线看免费观看| 日韩精品欧美激情| 北条麻妃99精品青青久久| 国产精品丝袜白浆摸在线| 自拍偷拍亚洲区| 狠狠操狠狠色综合网| 日韩精品日韩在线观看| 亚洲国产高潮在线观看| 亚洲一区二区在线播放| 久久精品免费播放| 成人免费福利视频| 亚洲精品美女在线观看播放| 日韩精品在线视频美女| 亚洲毛片一区二区| 亚洲黄色av网站| 国产成人精品免费久久久久| 欧美日韩中文在线| 法国裸体一区二区| 亚洲国产精品电影在线观看| 欧美精品一区二区三区国产精品| 国产一区二区三区视频在线观看| 日韩性生活视频| 久久久久久久亚洲精品| 亚洲视频在线视频| 久久久在线观看| 这里精品视频免费| 91国自产精品中文字幕亚洲| 欧美精品一区三区| 91嫩草在线视频| 国产精品盗摄久久久| 国产精品毛片a∨一区二区三区|国| 亚洲福利视频二区| 日韩精品视频观看| 欧美在线亚洲在线| 国产精品99蜜臀久久不卡二区| www.美女亚洲精品| 国产精品久久久| 欧美国产精品人人做人人爱| 久久久成人精品视频| 成人激情av在线| 久久精品一区中文字幕| 97视频免费看| 国产精品女人久久久久久| 久久国产精品久久久久久| 国产精品尤物福利片在线观看| 精品久久久久久久大神国产| 国产在线观看精品一区二区三区| 正在播放欧美一区| 亚洲石原莉奈一区二区在线观看| 国产欧美日韩免费看aⅴ视频| 久久综合国产精品台湾中文娱乐网| 久久久最新网址| 久久久欧美一区二区| 国产999在线观看| 国产精品video| 精品动漫一区二区三区| 美女黄色丝袜一区| 欧美亚洲激情在线| 亚洲视频欧洲视频| 91精品国产综合久久久久久久久| 精品激情国产视频| 国产精品www| 亚洲精品视频二区| 色诱女教师一区二区三区| 狠狠色狠狠色综合日日小说| 中文字幕av日韩| 全色精品综合影院| 日韩资源在线观看| 亲爱的老师9免费观看全集电视剧| 97碰碰碰免费色视频| 久久视频这里只有精品| 午夜精品久久久久久久久久久久久| 精品国偷自产在线| 国产ts一区二区| 欧美成人免费小视频| 亚洲精品国产免费| 日韩有码在线播放| 精品国产精品三级精品av网址| 日韩美女在线观看| 亚洲福利在线观看| 国产午夜精品美女视频明星a级| 精品女厕一区二区三区| 亚洲精品影视在线观看| 国产精品一区二区在线| 成人信息集中地欧美| 国产精品第七十二页| 国产美女高潮久久白浆| 久久久久久网站| 欧美老女人www| 亚洲电影免费观看高清完整版在线观看| 亚洲最大成人在线| 日韩精品一二三四区| www欧美xxxx| 国产丝袜精品第一页| 亚洲欧洲在线观看| xxxxxxxxx欧美| 日韩小视频网址| 午夜精品久久久久久久99热浪潮| 国产一区二区动漫| 国产精品毛片a∨一区二区三区|国| 北条麻妃99精品青青久久| 欧美在线视频观看| 国产精品高潮呻吟久久av无限| 成人性生交大片免费看视频直播| 91精品久久久久久久久不口人| 中文字幕欧美日韩精品| 亚洲一区二区三区乱码aⅴ| 国内外成人免费激情在线视频| 国产精品久久久久久久天堂| 日本精品久久久久影院| 国产精品视频永久免费播放| 中文字幕日韩在线观看| 18性欧美xxxⅹ性满足| 国内精品400部情侣激情| 亚洲韩国日本中文字幕| 久久精品视频在线播放| 亚洲美女黄色片| 深夜成人在线观看| 国产精品香蕉在线观看| 精品久久久久久久久久久久| 亚洲欧美综合v| 欧美成人在线网站| 国产日韩欧美综合| 久久久亚洲精品视频| 亚洲一区二区日本| 韩国精品久久久999| 亚洲国产欧美在线成人app| 国产裸体写真av一区二区| 91免费欧美精品| 91av在线看| 国产成人精品免费久久久久| 亚洲成人av片在线观看| 亚洲欧美日韩天堂一区二区| 久久国产精品久久久| 中文字幕九色91在线| 97视频免费观看| 国精产品一区一区三区有限在线| 国产欧美在线观看| 欧美日韩ab片| 亚洲一区二区三区久久| 日韩久久免费电影| 亚洲欧美色婷婷| 欧美丝袜美女中出在线| 992tv成人免费视频| 欧美黑人巨大精品一区二区| 欧美日韩在线免费| 久久久久免费精品国产| 久久久av电影| 国产成人精品久久二区二区91|