婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > html5使用canvas實(shí)現(xiàn)彈幕功能示例

html5使用canvas實(shí)現(xiàn)彈幕功能示例

熱門標(biāo)簽:南寧點(diǎn)撥外呼系統(tǒng)哪家公司做的好 云南大理400電話申請官方 當(dāng)涂高德地圖標(biāo)注 四川點(diǎn)撥外呼系統(tǒng) 成都智能外呼系統(tǒng)平臺 鎮(zhèn)江智能外呼系統(tǒng)有效果嗎 江蘇智能電銷機(jī)器人哪家好 黃島區(qū)地圖標(biāo)注 電銷機(jī)器人電話用什么卡

最近在著手開發(fā)彈幕視頻網(wǎng)站,通過html5中的canvas實(shí)現(xiàn)了彈幕的功能。

那么閑言碎語不要講,先說思路后上代碼。

思路:從頁面布局上來說就是將一塊畫布覆蓋在了video標(biāo)簽產(chǎn)生的視頻窗口之上,使用絕對定位就能實(shí)現(xiàn)了。最重要的就是js控制畫布上彈幕的顯示了,每一個(gè)彈幕都包裝成一個(gè)對象,對象包含的屬性有彈幕應(yīng)該出現(xiàn)的時(shí)間,彈幕的顏色,彈幕是否是移動的以及彈幕的文本。彈幕對象擁有方法包含:設(shè)置彈幕的橫縱坐標(biāo),彈幕的移動函數(shù)。實(shí)現(xiàn)的原理,在監(jiān)聽視頻開始播放的事件,在視頻開始播放時(shí)生成一個(gè)定時(shí)器,定時(shí)器每隔一個(gè)時(shí)間去遍歷循環(huán)彈幕對象數(shù)組并根據(jù)對象的屬性在畫布的適當(dāng)位置上繪制出彈幕,計(jì)時(shí)器中除了繪制彈幕的代碼還有執(zhí)行更新彈幕數(shù)組的代碼。

下圖是彈幕效果截屏

那么下面開始直接上代碼:

(function () {
    window.onload=function () {
        var video = document.getElementsByTagName("video")[0]
        var cav = document.getElementsByTagName("canvas")[0]
        //設(shè)置常量canvas的高度以及寬度
        var cavWidth = 800 
        var cavHeight = 420
        cav.width=cavWidth
        cav.height=cavHeight 
        var ctx = cav.getContext("2d")
        //存儲彈幕對象的數(shù)組
        var capObjs = []
        var lastItemTime
        var capHeight = 20 
        var inputEle = document.getElementsByClassName("caption-input-text")[0]
        var sendEle = document.getElementsByClassName("caption-sendButton")[0]
        var colorUl = document.getElementsByClassName("colorItems")[0]
        var ismoveInputEle = document.getElementsByClassName("caption-input-ismove")[0]
        //彈幕顏色
        var colors=["#fff","#FFCCCC","#CCFFCC","#CCCCFF","#FFFFCC","#CCFFFF"]
        var selectedColorIndex = 0
        var prevPlayTime = 0
        //測試數(shù)據(jù)的數(shù)組
        var testArrayCopy = []
        var capobjId = 0
        //彈幕在畫布中高度可能值組成的數(shù)組
        var topObjs = [{blank:true , value : 20 ,index:0},
                        {blank:true , value : 50 ,index:1},
                        {blank:true , value : 80 ,index:2},
                        {blank:true , value : 110 ,index:3},
                        {blank:true , value : 140 ,index:4},
                        {blank:true , value : 170 ,index:5},
                        {blank:true , value : 200 ,index:6},
                        {blank:true , value : 230 ,index:7},
                        {blank:true , value : 260 ,index:8},
                        {blank:true , value : 290 ,index:9},
                        {blank:true , value : 320 ,index:10},
                        {blank:true , value : 350 ,index:11},
                        {blank:true , value : 380 ,index:12},
                        {blank:true , value : 410 ,index:13}]
//test data 測試數(shù)據(jù)
var testArray = [{content:"ABCDEFGHIJKLMNOPQRSTUVWXYZ",time:"1",ismove:false,colorIndex:0},
{content:"233333333333333",time:"2",ismove:true,colorIndex:0},
{content:"干杯,哈哈哈~~~~~~",time:"2",ismove:true,colorIndex:5},
{content:"干杯,哈哈哈~~~~~~",time:"2",ismove:true,colorIndex:4},
{content:"干杯,哈哈哈~~~~~~",time:"2",ismove:true,colorIndex:4},
{content:"干杯,哈哈哈~~~~~~",time:"2",ismove:true,colorIndex:0},
{content:"干杯,哈哈哈~~~~~~",time:"2",ismove:true,colorIndex:0},
{content:"233333333333333",time:"3",ismove:true,colorIndex:0},
{content:"233333333333333",time:"3",ismove:true,colorIndex:0},
{content:"233333333333333",time:"3",ismove:true,colorIndex:0},
{content:"233333333333333",time:"3",ismove:true,colorIndex:0},
{content:"233333333333333",time:"3",ismove:true,colorIndex:0},
{content:"233333333333333",time:"3",ismove:true,colorIndex:0},
{content:"233333333333333",time:"4",ismove:false,colorIndex:0},
{content:"233333333333333",time:"5",ismove:true,colorIndex:4},
{content:"233333333333333",time:"6",ismove:true,colorIndex:2},
{content:"233333333333333",time:"7",ismove:true,colorIndex:2},
{content:"233333333333333",time:"7",ismove:true,colorIndex:2},
{content:"233333333333333",time:"7",ismove:true,colorIndex:2},
{content:"233333333333333",time:"7",ismove:true,colorIndex:2},
{content:"233333333333333",time:"7",ismove:true,colorIndex:2},
{content:"233333333333333",time:"7",ismove:true,colorIndex:2},
{content:"233333333333333",time:"8",ismove:true,colorIndex:0},
{content:"233333333333333",time:"9",ismove:true,colorIndex:0},
{content:"233333333333333",time:"10",ismove:true,colorIndex:0},
{content:"老師說的非常好,我要好好學(xué)習(xí)了》》》》",time:"12",ismove:true,colorIndex:0},
{content:"老師說的非常好,我要好好學(xué)習(xí)了》》》》",time:"13",ismove:true,colorIndex:0},
{content:"老師說的非常好,我要好好學(xué)習(xí)了》》》》",time:"14",ismove:true,colorIndex:2},
{content:"老師說的非常好,我要好好學(xué)習(xí)了》》》》",time:"15",ismove:false,colorIndex:0},
{content:"老師說的非常好,我要好好學(xué)習(xí)了》》》》",time:"16",ismove:true,colorIndex:2},
{content:"老師說的非常好,我要好好學(xué)習(xí)了》》》》",time:"17",ismove:true,colorIndex:3},
{content:"老師說的非常好,我要好好學(xué)習(xí)了》》》》",time:"18",ismove:true,colorIndex:2},
{content:"老師說的非常好,我要好好學(xué)習(xí)了》》》》",time:"19",ismove:true,colorIndex:0},
{content:"老師說的非常好,我要好好學(xué)習(xí)了》》》》",time:"20",ismove:true,colorIndex:3},
{content:"老師說的非常好,我要好好學(xué)習(xí)了》》》》",time:"21",ismove:true,colorIndex:0},
{content:"老師說的非常好,我要好好學(xué)習(xí)了》》》》",time:"22",ismove:true,colorIndex:0},
{content:"老鐵們,小禮物走一波了,小汽車小火箭刷起來吧=========",time:"23",ismove:true,colorIndex:0},
{content:"老鐵們,小禮物走一波了,小汽車小火箭刷起來吧=========",time:"24",ismove:true,colorIndex:0},
{content:"老鐵們,小禮物走一波了,小汽車小火箭刷起來吧=========",time:"25",ismove:true,colorIndex:3},
{content:"老鐵們,小禮物走一波了,小汽車小火箭刷起來吧=========",time:"26",ismove:true,colorIndex:0},
{content:"老鐵們,小禮物走一波了,小汽車小火箭刷起來吧=========",time:"27",ismove:true,colorIndex:5},
{content:"老鐵們,小禮物走一波了,小汽車小火箭刷起來吧=========",time:"28",ismove:false,colorIndex:5},
{content:"老鐵們,小禮物走一波了,小汽車小火箭刷起來吧=========",time:"29",ismove:true,colorIndex:5},
{content:"老鐵們,小禮物走一波了,小汽車小火箭刷起來吧=========",time:"30",ismove:true,colorIndex:5},
{content:"馬上就下課了,瓦羅藍(lán)大陸走起了~~~",time:"31",ismove:true,colorIndex:5},
{content:"馬上就下課了,瓦羅藍(lán)大陸走起了~~~",time:"32",ismove:true,colorIndex:2},
{content:"馬上就下課了,瓦羅藍(lán)大陸走起了~~~",time:"33",ismove:true,colorIndex:2},
{content:"馬上就下課了,瓦羅藍(lán)大陸走起了~~~",time:"33",ismove:true,colorIndex:5},
{content:"馬上就下課了,瓦羅藍(lán)大陸走起了~~~",time:"34",ismove:true,colorIndex:5},
{content:"馬上就下課了,瓦羅藍(lán)大陸走起了~~~",time:"35",ismove:true,colorIndex:5},
{content:"馬上就下課了,瓦羅藍(lán)大陸走起了~~~",time:"36",ismove:true,colorIndex:2},
{content:"馬上就下課了,瓦羅藍(lán)大陸走起了~~~",time:"37",ismove:true,colorIndex:2}]
        //將測試數(shù)據(jù)備份
        copyArray(testArray , testArrayCopy)
        /*彈幕對象的構(gòu)造函數(shù),參數(shù)分別是:1.ismove:彈幕是否是移動的彈幕,2.spe:彈幕的移動速度,3.col:彈幕的顏色,4.text:彈幕的文本*/
        /*原型鏈方法 setTopValue設(shè)置縱坐標(biāo),setLeftValue設(shè)置橫坐標(biāo),moving完成坐標(biāo)的改變,setId完成id值的設(shè)置*/
        function Caption( ismove , spe , col , text ) {
            this.isMove = ismove
            this.speed = spe
            this.color = col || "#ff0"
            this.content = text
            this.latestTime = 0 
            this.width = text.length * 20 
            this.id = 0
            this.topIndex = 0
            this.occupyPos = true 
            this.top = 300
            this.left = 0
            this.setLeftValue()
            this.setTopValue()
        }
        Caption.prototype.setTopValue = function  () {
            for(var i = 0 ,len = topObjs.length ; i < len ; i++){
                if (topObjs[i].blank) {
                    this.top = topObjs[i].value
                    this.topIndex = i
                    topObjs[i].blank = false 
                    break
                }
            }
        }
        Caption.prototype.setLeftValue = function  () {
            if (this.isMove) {
                this.left = cavWidth
            }
            else {
                var contentLength = this.content.length
                var nowItemLeft = 420 - contentLength * 9
                this.left = nowItemLeft
            }
        }
        Caption.prototype.moving = function () {
            if (this.isMove) {
                this.left-=this.speed
                if ( this.left + this.width < cavWidth && this.occupyPos) {
                    this.occupyPos = false 
                    topObjs[this.topIndex].blank = true 
                }
            } 
            else{
                this.latestTime += 1
                if (this.latestTime > 450) {
                    topObjs[this.topIndex].blank = true 
                }
            }
        }
        Caption.prototype.setId = function  () {
            this.id = capobjId
            capobjId++
        }

        var cap1 = new Caption(  false , 1 , 0 , "小禮物走一波,雙擊6666。。。。")
        capObjs.push(cap1)
        cap1.setId()
        
        //循環(huán)遍歷數(shù)組,根據(jù)對象的屬性繪制在畫布上
        function drawAllText () {
            ctx.clearRect( 0 , 0 , cavWidth , cavHeight)
            ctx.beginPath()
            for(var i=0 , len = capObjs . length ; i < len ; i++ ){
                ctx.fillStyle = capObjs[i].color
                ctx.font = "bold 20px Courier New"
                ctx.fillText( capObjs[i].content , capObjs[i].left , capObjs[i].top )
                ctx.closePath()
                capObjs[i].moving()
                // if (capObjs[i].left < - cavWidth ) {
                    // capObjs.splice (i ,1)
                    // if excute this statement , will has fault because some item in array is null
                    // solution is : write a new function to refresh the array   
                // }
            }
        }
        
        //更新數(shù)組,當(dāng)對象已經(jīng)超出范圍的時(shí)候從數(shù)組刪除這個(gè)對象
        function refreshObjs(objs) {
            for (var i = objs.length - 1; i >= 0; i--) {
                if (objs[i].left < - cavWidth || objs[i].latestTime > 450 ) {
                    objs.splice(i , 1)
                }

            }
        }
        
        //更新保存彈幕對象的數(shù)組
        function updateArray () {
            var now = parseInt( video.currentTime )
            for (var i = testArray.length - 1; i >= 0; i--) {
                var nowItemTime = parseInt(testArray[i].time) 
                if ( nowItemTime == now ) {
                    //首次寫的控制高度的方式,空間利用不充分,后來改為setTopValue中的方式
                    // var nowItemLeft = getLeftValue(testArray[i])
                    // var diffTime = Math.abs(nowItemTime - lastItemTime)
                    // if (diffTime < 6) { 
                    //     capHeight += 30
                    //     capHeight = capHeight > 400 ? 20 : capHeight
                    // }    
                    var temcolor = colors[testArray[i].colorIndex]
                    var temcap = new Caption (  testArray[i].ismove , 1 , temcolor , testArray[i].content  )
                    capObjs.push(temcap)
                    capObjs[capObjs.length - 1].setId()
                    temcap = null
                    testArray.splice(i,1)
                }
            }
        }
        
        //當(dāng)用戶點(diǎn)擊send發(fā)送彈幕的回調(diào)函數(shù)
        function sendCaption (argument) {
            var inputEleTxt = inputEle.value
            var now = parseInt( video.currentTime )
            var inputIsmoveValue = ismoveInputEle.checked
            var temObj = {content:inputEleTxt,time:now,ismove:inputIsmoveValue,colorIndex:selectedColorIndex}
            testArray.push(temObj)
            inputEle.value = ""
        }

        // function getLeftValue (obj) {
        //     if (obj.ismove) {
        //         return 0
        //     }
        //     else {
        //         var contentLength = obj.content.length
        //         var nowItemLeft = 420 - contentLength * 9
        //         return nowItemLeft
        //     }
        // }
        
        //重新啟動canvas,用在人為導(dǎo)致進(jìn)度條時(shí)間的改變
        function reinitCav (argument) {
            // testArray = testArrayCopy
            copyArray(testArrayCopy , testArray)
            capObjs = []
            capHeight = 0
            clearInterval(canvasTimer)
            canvasTimer = null
            initCanvas()
        }

        var canvasTimer = null 
        
        //初始化canvas,用在開始播放時(shí)
         function initCanvas () {
             if (canvasTimer == null ) {
                canvasTimer = setInterval(function (argument) {
                    drawAllText()
                    updateArray()
                    refreshObjs(capObjs)
                },10)
             }
            
        }//end function initCanvas
        
        //復(fù)制數(shù)組
        function copyArray (arr1 , arr2) {
            for (var i =0 , len=arr1.length ; i < len ; i++) {
                    arr2[i] = arr1[i]
                }    
        }

        //color select event 用戶發(fā)送彈幕的顏色控制代碼
        colorUl.addEventListener("click", function( e ){
            var prevSelectItemId = ""
            switch (selectedColorIndex) {
                case 0:
                    prevSelectItemId = "colorItemFrist"
                    break;
                case 1:
                    prevSelectItemId = "colorItemSecond"
                    break;
                case 2:
                    prevSelectItemId = "colorItemThrid"
                    break;
                case 3:
                    prevSelectItemId = "colorItemFourth"
                    break;
                case 4:
                    prevSelectItemId = "colorItemFifth" 
                    break;
                case 5:
                    prevSelectItemId = "colorItemSixth"
                    break;
                default:
                    // statements_def
                    break;
            }
            var prevSelectItem = document.getElementById(prevSelectItemId)
            prevSelectItem.className = ""
            var eventTarget = e.target
            eventTarget.className = "selectedColor"
            var eveTarId = eventTarget.id.substring(9)
            switch (eveTarId) {
                case "Frist":
                    selectedColorIndex = 0
                    break;
                case "Second":
                    selectedColorIndex = 1
                    break;
                case "Thrid":
                    selectedColorIndex = 2
                    break;
                case "Fourth":
                    selectedColorIndex = 3
                    break;
                case "Fifth":
                    selectedColorIndex = 4
                    break;
                case "Sixth":
                    selectedColorIndex = 5
                    break;
                default:
                    // statements_def
                    break;
            }
        }, false)

        video.addEventListener("playing" , function () {
            initCanvas()
        })
        
        //進(jìn)度條改變執(zhí)行代碼
        video.addEventListener("timeupdate", function  () {
            var nowPlayTime = video.currentTime
            var diffTime = Math.abs(nowPlayTime - prevPlayTime)
            prevPlayTime = nowPlayTime
            if (diffTime > 1) {
                reinitCav()
            }
        }, false)
        
        //視頻暫停執(zhí)行代碼
        video.addEventListener("pause" , function () {
            clearInterval(canvasTimer)
            canvasTimer = null 
        })
        
        //點(diǎn)擊send的監(jiān)聽事件
        sendEle.addEventListener("click" , sendCaption)
        
        //input的回車監(jiān)聽事件
        inputEle.addEventListener("keydown", function(e) {
            var keynum = 0
            keynum = window.event ? e.keyCode : e.which
            if (keynum == 13) {
                sendCaption()
            }
        })


        var aaaa = function() {
            alert(1)
        }
        aaaa()
        // function b(aaaa){
        //     return aaaa()
        // }
        // b()    
    }//end
})()

希望能夠?qū)ο胍谱鲝椖坏耐瑢W(xué)有所幫助,還可以去github下載完整的項(xiàng)目代碼:gitbub項(xiàng)目地址

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:西寧 咸寧 十堰 佳木斯 淮安 廣西 南京 酒泉

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《html5使用canvas實(shí)現(xiàn)彈幕功能示例》,本文關(guān)鍵詞  html5,使用,canvas,實(shí)現(xiàn),彈幕,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《html5使用canvas實(shí)現(xiàn)彈幕功能示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于html5使用canvas實(shí)現(xiàn)彈幕功能示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美极品美女视频| 成人黄色免费短视频| 午夜精品一区二区三区三上悠亚 | 粉嫩一区二区三区在线看| 欧洲生活片亚洲生活在线观看| heyzo一本久久综合| 91蜜桃免费观看视频| 91麻豆精品国产自产在线| 久久精品一区二区三区不卡牛牛| 国产亚洲污的网站| 亚洲v精品v日韩v欧美v专区| 国产二区国产一区在线观看| 欧美三日本三级三级在线播放| 欧美电影免费观看高清完整版在线 | 欧美精品一卡两卡| 最新国产成人在线观看| 国产精品一区二区三区网站| 日韩一二三区不卡| 婷婷夜色潮精品综合在线| 色欧美日韩亚洲| 日韩美女视频19| 9久草视频在线视频精品| 国产校园另类小说区| 国产自产高清不卡| 欧美精品一区二区三区高清aⅴ| 日产国产欧美视频一区精品| 91.com视频| 精品影视av免费| 精品美女一区二区| 国产一区二区三区不卡在线观看 | 精品国产网站在线观看| 日韩国产欧美在线视频| 欧美综合天天夜夜久久| 一区二区不卡在线播放| 欧美日韩激情在线| 婷婷激情综合网| 欧美一区永久视频免费观看| 亚洲色图视频网站| 在线免费观看日本一区| 婷婷一区二区三区| 国产亚洲制服色| 成人av免费网站| 亚洲激情校园春色| 欧美麻豆精品久久久久久| 婷婷开心久久网| 久久精品视频在线免费观看 | 国产成人小视频| 中文子幕无线码一区tr| www.激情成人| 五月综合激情婷婷六月色窝| 欧美大白屁股肥臀xxxxxx| 国产成人一区二区精品非洲| 亚洲午夜久久久久久久久电影院| 欧美一区二区免费观在线| 国产麻豆成人传媒免费观看| 亚洲人成网站色在线观看 | 国产精品一区一区三区| 国产精品久久久久久久久久久免费看 | 粉嫩av亚洲一区二区图片| 最新日韩在线视频| 日韩精品一区二区三区视频| 色中色一区二区| 黄色日韩三级电影| 亚洲综合激情网| 久久综合九色综合欧美98| 91福利社在线观看| 国产成人精品在线看| 丝袜亚洲另类丝袜在线| 国产欧美一区二区在线观看| 欧美乱妇20p| eeuss鲁片一区二区三区| 日韩黄色一级片| 亚洲精品国产高清久久伦理二区| 久久一夜天堂av一区二区三区| 日本韩国精品在线| 国产成人午夜视频| 蜜桃视频在线观看一区二区| 亚洲啪啪综合av一区二区三区| 欧美日韩精品一区二区天天拍小说| 韩国一区二区在线观看| 亚洲成人一二三| 亚洲视频图片小说| 国产精品毛片无遮挡高清| 日韩视频一区在线观看| 欧美日韩精品欧美日韩精品一| 成人性色生活片| 久久精品国产99国产精品| 视频一区在线视频| 亚洲妇熟xx妇色黄| 自拍偷拍亚洲激情| 国产精品国产三级国产有无不卡| 精品处破学生在线二十三| 91精品国产品国语在线不卡| 91福利资源站| 在线免费观看一区| 在线观看一区二区精品视频| 91亚洲男人天堂| 色综合天天在线| 色综合久久久久| 91在线视频免费观看| a在线播放不卡| 成人国产精品免费观看动漫| 成人午夜看片网址| 高清在线成人网| 高清av一区二区| 成人免费看的视频| 色乱码一区二区三区88| 欧美亚洲日本一区| 欧美手机在线视频| 3d动漫精品啪啪| 日韩一区二区麻豆国产| 亚洲精品在线免费播放| 精品国产乱码久久| 久久久综合网站| 亚洲视频一区在线| 亚洲v日本v欧美v久久精品| 日日夜夜精品视频天天综合网| 日韩二区三区四区| 国产露脸91国语对白| 北岛玲一区二区三区四区| 精品视频一区二区三区免费| 91精品国产美女浴室洗澡无遮挡| 26uuu欧美| 亚洲美女视频在线观看| 日韩vs国产vs欧美| 成人av网在线| 制服丝袜在线91| 国产女人aaa级久久久级| 亚洲一本大道在线| 国产在线看一区| caoporn国产精品| 欧美精品 日韩| 国产精品久久久久一区二区三区共| 亚洲欧美区自拍先锋| 久久电影网站中文字幕| 成人av网站在线观看免费| 久久―日本道色综合久久| 亚洲自拍偷拍麻豆| 日韩国产精品久久久久久亚洲| 精彩视频一区二区| 91麻豆精品国产自产在线观看一区| 久久精品夜色噜噜亚洲aⅴ| 午夜精品一区二区三区三上悠亚| 日本高清成人免费播放| 国产亚洲精品福利| 国产99久久久国产精品免费看 | 久久久蜜桃精品| 无码av中文一区二区三区桃花岛| 成人教育av在线| 欧美精品一区二区蜜臀亚洲| 久久一日本道色综合| 蜜桃视频在线一区| 91美女蜜桃在线| 精品国产第一区二区三区观看体验| 亚洲乱码中文字幕| 久久国产乱子精品免费女| 日韩久久久精品| 日韩精品福利网| 精品国产污网站| 麻豆精品一区二区| 亚洲国产成人一区二区三区| 老司机精品视频线观看86 | www国产成人免费观看视频 深夜成人网| 一区二区三区欧美激情| 色综合一个色综合亚洲| 亚洲国产一区二区在线播放| 91丨porny丨国产入口| 性欧美疯狂xxxxbbbb| 欧美性大战久久久| 欧美bbbbb| 日韩欧美一二三四区| 欧美优质美女网站| 亚洲一区在线观看网站| 国产一区二区精品在线观看| 国产精品毛片a∨一区二区三区| 成人高清在线视频| 午夜欧美2019年伦理| 日韩视频中午一区| 色综合天天天天做夜夜夜夜做| 亚洲图片激情小说| 欧美日本在线看| 蜜桃视频第一区免费观看| 国产亚洲人成网站| 91首页免费视频| 一区二区视频在线看| 欧美日本乱大交xxxxx| 蜜臀久久99精品久久久久久9| 日韩精品一区二区三区视频播放| 国产真实精品久久二三区| 国产精品另类一区| 欧美无人高清视频在线观看| 久久精品国产一区二区三| 欧美激情资源网| 色视频欧美一区二区三区| 婷婷久久综合九色综合绿巨人| 国产清纯在线一区二区www| 99精品久久99久久久久| 国产一区二区精品久久99| 一区二区三区在线播放| 国产精品久久久久桃色tv|