成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > 用HTML5 實(shí)現(xiàn)橡皮擦的涂抹效果的教程

用HTML5 實(shí)現(xiàn)橡皮擦的涂抹效果的教程

熱門(mén)標(biāo)簽:地圖標(biāo)注位置能賺錢(qián)嗎 外呼線穩(wěn)定線路 邢臺(tái)縣地圖標(biāo)注app 阜陽(yáng)企業(yè)外呼系統(tǒng) pageadm實(shí)現(xiàn)地圖標(biāo)注 申請(qǐng)400電話流程簡(jiǎn)介 呼和浩特外呼電銷(xiāo)系統(tǒng)排名 外呼系統(tǒng)電話怎么投訴 南通數(shù)據(jù)外呼系統(tǒng)推廣

最近項(xiàng)目剛好用到這種效果,也就是有點(diǎn)像刮刮卡一樣,在移動(dòng)設(shè)備上,把某張圖片刮掉顯示出另一張圖片。效果圖如下:

DEMO請(qǐng)戳右:DEMO 
這種在網(wǎng)上還是挺常見(jiàn)的,本來(lái)就想直接網(wǎng)上找個(gè)demo套用下他的方法就行了,套用了才發(fā)現(xiàn),在android上卡出翔了,因?yàn)榭蛻?hù)要求,在android不要求特別流暢,至少要能玩,但是網(wǎng)上找的那個(gè)demo實(shí)在太卡,根本就是沒(méi)法玩的情況。于是就想自己寫(xiě)一個(gè)算了,本文也就權(quán)當(dāng)記錄一下研究過(guò)程。

  這種刮圖的效果,首先想到就是用HTML5的canvas來(lái)實(shí)現(xiàn),而canvas的API中,可以清除像素的就是clearRect方法,但是clearRect方法的清除區(qū)域矩形,畢竟大部分人的習(xí)慣中的橡皮擦都是圓形的,所以就引入了剪輯區(qū)域這個(gè)強(qiáng)大的功能,也就是clip方法。用法很簡(jiǎn)單: 

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. ctx.save()   
  2. ctx.beginPath()   
  3. ctx.arc(x2,y2,a,0,2*Math.PI);   
  4. ctx.clip()   
  5. ctx.clearRect(0,0,canvas.width,canvas.height);   
  6. ctx.restore();   

  上面那段代碼就實(shí)現(xiàn)了圓形區(qū)域的擦除,也就是先實(shí)現(xiàn)一個(gè)圓形路徑,然后把這個(gè)路徑作為剪輯區(qū)域,再清除像素就行了。有個(gè)注意點(diǎn)就是需要先保存繪圖環(huán)境,清除完像素后要重置繪圖環(huán)境,如果不重置的話以后的繪圖都是會(huì)被限制在那個(gè)剪輯區(qū)域中。

  擦除效果有了,現(xiàn)在就是寫(xiě)鼠標(biāo)移動(dòng)擦除的效果了,下面我均用鼠標(biāo)來(lái)描述,因?yàn)橐苿?dòng)端也差不多,就是把mousedown換成touchstart,mousemove換成touchmove,mouseup換成touchend、以及獲取坐標(biāo)點(diǎn)由e.clientX換成e.targetTouches[0].pageX而已。

  實(shí)現(xiàn)鼠標(biāo)移動(dòng)擦除,剛開(kāi)始就是想到鼠標(biāo)移動(dòng)時(shí)在觸發(fā)的mousemove事件中對(duì)鼠標(biāo)所在位置進(jìn)行圓形區(qū)域擦除,寫(xiě)出來(lái)后發(fā)現(xiàn),當(dāng)鼠標(biāo)移動(dòng)速度很快的時(shí)候,擦除的區(qū)域就不連貫了,就會(huì)出現(xiàn)下面這種效果,這顯然不是我們想要的橡皮擦擦除效果。

既然所有點(diǎn)不連貫,那接下來(lái)要做的事就是把這些點(diǎn)連貫起來(lái),如果是實(shí)現(xiàn)畫(huà)圖功能的話,就可以直接通過(guò)lineTo把兩點(diǎn)之間連接起來(lái)再繪制,但是擦除效果中的剪輯區(qū)域要求要是閉合路徑,如果是單純的把兩個(gè)點(diǎn)連起來(lái)就無(wú)法形成剪輯區(qū)域了。然后我就想到用計(jì)算的方法,算出兩個(gè)擦除區(qū)域中的矩形四個(gè)端點(diǎn)坐標(biāo)來(lái)實(shí)現(xiàn),也就是下圖中的紅色矩形:

計(jì)算方法也很簡(jiǎn)單,因?yàn)榭梢灾纼蓚€(gè)剪輯區(qū)域連線兩個(gè)端點(diǎn)的坐標(biāo),又知道我們要多寬的線條,矩形的四個(gè)端點(diǎn)坐標(biāo)就變得容易求了,所以就有了下面的代碼:
XML/HTML Code復(fù)制內(nèi)容到剪貼板

  1. var aasin = a*Math.sin(Math.atan((y2-y1)/(x2-x1)));   
  2. var aacos = a*Math.cos(Math.atan((y2-y1)/(x2-x1)))   
  3. var x3 = x1+asin;   
  4. var y3 = y1-acos;   
  5. var x4 = x1-asin;   
  6. var y4 = y1+acos;   
  7. var x5 = x2+asin;   
  8. var y5 = y2-acos;   
  9. var x6 = x2-asin;   
  10. var y6 = y2+acos;   

  x1、y1和x2、y2就是兩個(gè)端點(diǎn),從而求出了四個(gè)端點(diǎn)的坐標(biāo)。這樣一來(lái),剪輯區(qū)域就是圈加矩形,代碼組織起來(lái)就是:
XML/HTML Code復(fù)制內(nèi)容到剪貼板

  1. var hastouch = "ontouchstart" in window?true:false,//判斷是否為移動(dòng)設(shè)備   
  2.     tapstart = hastouch?"touchstart":"mousedown",   
  3.     tapmove = hastouch?"touchmove":"mousemove",   
  4.     tapend = hastouch?"touchend":"mouseup";   
  5.   
  6. canvas.addEventListener(tapstart , function(e){   
  7.     e.preventDefault();   
  8.        
  9.     x1 = hastouch?e.targetTouches[0].pageX:e.clientX-canvas.offsetLeft;   
  10.     y1 = hastouch?e.targetTouches[0].pageY:e.clientY-canvas.offsetTop;   
  11.        
  12.   //鼠標(biāo)第一次點(diǎn)下的時(shí)候擦除一個(gè)圓形區(qū)域,同時(shí)記錄第一個(gè)坐標(biāo)點(diǎn)   
  13.     ctx.save()   
  14.     ctx.beginPath()   
  15.     ctx.arc(x1,y1,a,0,2*Math.PI);   
  16.     ctx.clip()   
  17.     ctx.clearRect(0,0,canvas.width,canvas.height);   
  18.     ctx.restore();   
  19.        
  20.     canvas.addEventListener(tapmove , tapmoveHandler);   
  21.     canvas.addEventListener(tapend , function(){   
  22.         canvas.removeEventListener(tapmove , tapmoveHandler);   
  23.     });   
  24.   //鼠標(biāo)移動(dòng)時(shí)觸發(fā)該事件   
  25.     function tapmoveHandler(e){   
  26.         e.preventDefault()   
  27.         x2 = hastouch?e.targetTouches[0].pageX:e.clientX-canvas.offsetLeft;   
  28.         y2 = hastouch?e.targetTouches[0].pageY:e.clientY-canvas.offsetTop;   
  29.            
  30.     //獲取兩個(gè)點(diǎn)之間的剪輯區(qū)域四個(gè)端點(diǎn)   
  31.         var aasin = a*Math.sin(Math.atan((y2-y1)/(x2-x1)));   
  32.         var aacos = a*Math.cos(Math.atan((y2-y1)/(x2-x1)))   
  33.         var x3 = x1+asin;   
  34.         var y3 = y1-acos;   
  35.         var x4 = x1-asin;   
  36.         var y4 = y1+acos;   
  37.         var x5 = x2+asin;   
  38.         var y5 = y2-acos;   
  39.         var x6 = x2-asin;   
  40.         var y6 = y2+acos;   
  41.            
  42.     //保證線條的連貫,所以在矩形一端畫(huà)圓   
  43.         ctx.save()   
  44.         ctx.beginPath()   
  45.         ctx.arc(x2,y2,a,0,2*Math.PI);   
  46.         ctx.clip()   
  47.         ctx.clearRect(0,0,canvas.width,canvas.height);   
  48.         ctx.restore();   
  49.        
  50.     //清除矩形剪輯區(qū)域里的像素   
  51.         ctx.save()   
  52.         ctx.beginPath()   
  53.         ctx.moveTo(x3,y3);   
  54.         ctx.lineTo(x5,y5);   
  55.         ctx.lineTo(x6,y6);   
  56.         ctx.lineTo(x4,y4);   
  57.         ctx.closePath();   
  58.         ctx.clip()   
  59.         ctx.clearRect(0,0,canvas.width,canvas.height);   
  60.         ctx.restore();   
  61.            
  62.     //記錄最后坐標(biāo)   
  63.         x1 = x2;   
  64.         y1 = y2;   
  65.     }   
  66. })  

  如此一來(lái),鼠標(biāo)擦除的效果就實(shí)現(xiàn)了,不過(guò)還有一個(gè)要實(shí)現(xiàn)的點(diǎn),就是大部分擦除的效果,當(dāng)你擦了一定數(shù)量的像素后,就會(huì)自動(dòng)把所有圖片內(nèi)容呈現(xiàn)出來(lái),這個(gè)效果,我是用imgData來(lái)實(shí)現(xiàn)的。代碼如下:
復(fù)制代碼

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. var imgData = ctx.getImageData(0,0,canvas.width,canvas.height);   
  2. var dd = 0;   
  3. for(var x=0;x<imgData.width;x+=1){   
  4.     for(var y=0;y<imgData.height;y+=1){   
  5.         var i = (y*imgData.width + x)*4;   
  6.         if(imgData.data[i+3] > 0){   
  7.             dd++   
  8.         }   
  9.     }   
  10. }   
  11. if(dd/(imgData.width*imgData.height)<0.4){   
  12.     canvas.className = "noOp";   
  13. }  

  獲取到imgData,對(duì)imgData里的像素進(jìn)行遍歷,然后再對(duì)imgData的data數(shù)組里的rgba中的alpha進(jìn)行分析,也就是分析透明度,如果像素被擦除了,那透明度就是0了,也就是把當(dāng)前畫(huà)布中透明度不為0的像素的數(shù)量跟畫(huà)布總像素?cái)?shù)進(jìn)行比較,如果透明度不為0 的像素?cái)?shù)比例低于40%,那說(shuō)明當(dāng)前畫(huà)布上就以后有百分六十以上的區(qū)域被擦除了,就可以自動(dòng)呈現(xiàn)圖片了。

  此處注意,我是把檢查像素這段代碼方法mouseup事件里面的,因?yàn)檫@個(gè)計(jì)算量相對(duì)來(lái)說(shuō)還是不小,如果用戶(hù)狂點(diǎn)鼠標(biāo),就會(huì)狂觸發(fā)mouseup事件,也就是會(huì)瘋狂的觸發(fā)那個(gè)循環(huán)計(jì)算像素,計(jì)算量大到阻塞進(jìn)程,導(dǎo)致界面卡住的情況,緩解辦法如下:加個(gè)timeout,延遲執(zhí)行像素計(jì)算,而在每一次點(diǎn)擊的時(shí)候再清除timeout,也就是如果用戶(hù)點(diǎn)擊很快,這個(gè)計(jì)算也就觸發(fā)不了了,還有一個(gè)提升的辦法就是抽樣檢查,我上面的寫(xiě)法是逐個(gè)像素檢查,逐個(gè)像素檢查的話像素量太大,肯定會(huì)卡的,所以可以采用抽樣檢查,比如每隔30個(gè)像素檢查一次,修改后的代碼如下:
復(fù)制代碼

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. timeout = setTimeout(function(){   
  2.     var imgData = ctx.getImageData(0,0,canvas.width,canvas.height);   
  3.     var dd = 0;   
  4.     for(var x=0;x<imgData.width;x+=30){   
  5.         for(var y=0;y<imgData.height;y+=30){   
  6.             var i = (y*imgData.width + x)*4;   
  7.             if(imgData.data[i+3] >0){   
  8.                 dd++   
  9.             }   
  10.         }   
  11.     }   
  12.     if(dd/(imgData.width*imgData.height/900)<0.4){   
  13.         canvas.className = "noOp";   
  14.     }   
  15. },100)   

  這樣就可以較大限度的防止用戶(hù)狂點(diǎn)擊了,如果有其他更好的檢查方法歡迎給出意見(jiàn),謝謝。

  到了這一步就都寫(xiě)完了,然后就是測(cè)試的時(shí)候了,結(jié)果并不樂(lè)觀,在android上還是卡啊卡啊,所以又得另想辦法,最終發(fā)現(xiàn)了繪圖環(huán)境中的globalCompositeOperation這個(gè)屬性,這個(gè)屬性的默認(rèn)值是source-over,也就是,當(dāng)你在已有像素上進(jìn)行繪圖時(shí)會(huì)疊加,但是還有一個(gè)屬性是destination-out,官方解釋就是:在源圖像外顯示目標(biāo)圖像。只有源圖像外的目標(biāo)圖像部分才會(huì)被顯示,源圖像是透明的。好像不太好理解,但是其實(shí)自己測(cè)試一下就會(huì)發(fā)現(xiàn)很簡(jiǎn)單,也就是在已有像素的基礎(chǔ)上進(jìn)行繪圖時(shí),你繪制的區(qū)域里的已有像素都會(huì)被置為透明,直接看張圖更容易理解:

globalCompositeOperation屬性效果圖解。
有了這個(gè)屬性后,就意味著不需要用到clip,也就不需要用sin、cos什么的計(jì)算剪輯區(qū)域,直接用條粗線就行了,這樣一來(lái)就能夠很大限度的降低了計(jì)算量,同時(shí)減少了繪圖環(huán)境API的調(diào)用,性能提升了,在android上運(yùn)行應(yīng)該也會(huì)流暢很多,下面是修改后的代碼:


XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. //通過(guò)修改globalCompositeOperation來(lái)達(dá)到擦除的效果   
  2. function tapClip(){   
  3.     var hastouch = "ontouchstart" in window?true:false,   
  4.         tapstart = hastouch?"touchstart":"mousedown",   
  5.         tapmove = hastouch?"touchmove":"mousemove",   
  6.         tapend = hastouch?"touchend":"mouseup";   
  7.        
  8.     canvas.addEventListener(tapstart , function(e){   
  9.      clearTimeout(timeout)   
  10.         e.preventDefault();   
  11.            
  12.         x1 = hastouch?e.targetTouches[0].pageX:e.clientX-canvas.offsetLeft;   
  13.         y1 = hastouch?e.targetTouches[0].pageY:e.clientY-canvas.offsetTop;   
  14.            
  15.         ctx.lineCap = "round";  //設(shè)置線條兩端為圓弧   
  16.         ctx.lineJoin = "round";  //設(shè)置線條轉(zhuǎn)折為圓弧   
  17.         ctx.lineWidth = a*2;     
  18.         ctx.globalCompositeOperation = "destination-out";   
  19.            
  20.         ctx.save();   
  21.         ctx.beginPath()   
  22.         ctx.arc(x1,y1,1,0,2*Math.PI);   
  23.         ctx.fill();   
  24.         ctx.restore();   
  25.            
  26.         canvas.addEventListener(tapmove , tapmoveHandler);   
  27.         canvas.addEventListener(tapend , function(){   
  28.             canvas.removeEventListener(tapmove , tapmoveHandler);   
  29.                
  30.        timeout = setTimeout(function(){   
  31.             var imgData = ctx.getImageData(0,0,canvas.width,canvas.height);   
  32.             var dd = 0;   
  33.             for(var x=0;x<imgData.width;x+=30){   
  34.                 for(var y=0;y<imgData.height;y+=30){   
  35.                     var i = (y*imgData.width + x)*4;   
  36.                     if(imgData.data[i+3] > 0){   
  37.                         dd++   
  38.                     }   
  39.                 }   
  40.             }   
  41.             if(dd/(imgData.width*imgData.height/900)<0.4){   
  42.                 canvas.className = "noOp";   
  43.             }   
  44.        },100)   
  45.         });   
  46.         function tapmoveHandler(e){   
  47.             e.preventDefault()   
  48.             x2 = hastouch?e.targetTouches[0].pageX:e.clientX-canvas.offsetLeft;   
  49.             y2 = hastouch?e.targetTouches[0].pageY:e.clientY-canvas.offsetTop;   
  50.                
  51.             ctx.save();   
  52.             ctx.moveTo(x1,y1);   
  53.             ctx.lineTo(x2,y2);   
  54.             ctx.stroke();   
  55.             ctx.restore()   
  56.                
  57.             x1 = x2;   
  58.             y1 = y2;   
  59.         }   
  60.     })   
  61. }   

  擦除那部分代碼就這么一點(diǎn),也就相當(dāng)于畫(huà)圖功能,直接設(shè)置line屬性后通過(guò)lineTo進(jìn)行繪制線條,只要事前把globalCompositeOperation設(shè)成destination-out,你所進(jìn)行的一切繪制,都變成了擦除效果。鼠標(biāo)滑動(dòng)觸發(fā)的事件里面代碼也少了很多,繪圖對(duì)象的調(diào)用次數(shù)減少了,計(jì)算也減少了,性能提升大大滴。

  改好代碼后就立即用自己的android機(jī)子測(cè)試了一下,果然如此,跟上一個(gè)相比,流暢了很多,至少達(dá)到了客戶(hù)要求的能玩的地步了。

  源碼地址:https://github.com/whxaxes/canvas-test/blob/gh-pages/src/Funny-demo/clip/clip.html

標(biāo)簽:楊凌 蚌埠 內(nèi)蒙古 辛集 撫順 黃山 鶴崗 德州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《用HTML5 實(shí)現(xiàn)橡皮擦的涂抹效果的教程》,本文關(guān)鍵詞  用,HTML5,實(shí)現(xiàn),橡皮擦,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《用HTML5 實(shí)現(xiàn)橡皮擦的涂抹效果的教程》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于用HTML5 實(shí)現(xiàn)橡皮擦的涂抹效果的教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    91成人精品网站| 国产永久免费视频| 欧美乱熟臀69xxxxxx| 亚洲最大成人在线| 欧美成人乱码一区二区三区| 国产日韩欧美在线视频观看| 国产亚洲精品久久777777| 最新亚洲精品国自产在线观看| 美女胸又www又黄的网站| 日本最新一区二区三区视频观看| 精品推荐国产麻豆剧传媒| 成人黄色理论片| 九九这里只精品视在线99| 手机免费看av| 久久久久伊人| 欧美日本免费一区二区三区| 精品欧美国产| 蜜桃av麻豆av天美av免费| 亚洲一级片在线看| 精品福利视频一区二区三区| 一级片免费看| 综合色就爱涩涩涩综合婷婷| 日韩欧美电影一区二区| 韩国v欧美v亚洲v日本v| 精品日产乱码久久久久久仙踪林| 国产精品欧美日韩久久| 午夜爱爱毛片xxxx视频免费看| 国产在线精品一区二区夜色| 天天影视涩香欲综合网| 69日本xxxxxxxxx49| 成人欧美一区二区三区视频xxx| 久久国产精品一区二区三区| 亚洲7777| 婷婷国产在线综合| 亚洲色图另类图片| 夜夜躁狠狠躁日日躁av| 欧美精品 日韩| 国产亚洲婷婷免费| 麻豆国产尤物av尤物在线观看| 成人性生交大片免费看视频在线| 天堂在线看视频| av日韩电影| 国产露脸无套对白在线播放| 国产另类图片| 色综合久久88色综合天天免费| 77777少妇光屁股久久一区| 欧美一级黄色录像片| 这里精品视频免费| 91美女高潮出水| 在线免费观看亚洲视频| 国产色片在线观看| 人妻精品一区一区三区蜜桃91| 国产精品视频一区二区三| 欧美二区乱c少妇| 精品美女久久久| 久久国产视频一区| 亚洲看片网站| xxx中文字幕| 黄色av免费看| 欧美成人片在线观看| 久久国产精品久久精品| 精品国产区一区| 免费特级黄毛片| 伊人久久大香线蕉综合影院首页| 午夜cr在线观看高清在线视频完整版| 欧美电影免费观看高清| 欧美套图亚洲一区| 全国精品免费看| 日韩在线不卡一区| av中文网站| 免费观看成人毛片| 欧美精品videosex性欧美| 欧美日韩四区| 亚洲一级二级三级在线免费观看| 国内精品久久久久影院 日本资源| 久久综合久久综合九色| 欧美中文字幕不卡| 久久久精品人妻一区二区三区四| 91污色多多| 麻豆视频一区二区| 亚洲福利视频一区| 女女同性女同一区二区三区按摩| 91一区一区三区| 日韩一区二区三区中文字幕| 久久精品ww人人做人人爽| 国产高清精品网站| 亚洲精品中文字幕乱码三区| 欧美人妻精品一区二区三区| 亚洲在线观看视频| 中文字幕一区二区三区在线乱码| 国产超碰91| 中文字幕第2页| 成人在线播放| 91精品久久久久久久久| 高清一区二区三区四区五区| 欧美精品综合| 国产色一区二区| 91深夜福利视频| 免费观看一级一片| 国产老女人精品毛片久久| 一区二区三区四区在线视频| 日韩免费观看高清| 一区二区视频观看| 88av在线播放| 国产男女猛烈无遮挡91| 国产麻花豆剧传媒精品mv在线| 亚洲精品成人无限看| 国产高清一级毛片在线不卡| 岛国av一区| 亚洲美洲欧洲综合国产一区| 日本福利片免费看| 久久综合狠狠综合久久综青草| 欧美性猛交xxxxx少妇| www男人的天堂| 欧美美女一级片| av在线电影播放| 无码人妻精品一区二区三应用大全| 日日摸天天爽天天爽视频| 欧美精品videos性欧美| www日本在线| 手机在线成人免费视频| 日韩免费福利电影在线观看| 日韩激情av在线| 欧美精品一区在线播放| 亚洲国产精品网站| av手机在线播放| 成人三级视频在线观看| 91视频国产观看| 国产精品一区二区在线观看网站| 97香蕉碰碰人妻国产欧美| 国产精品国产亚洲精品看不卡| 亚洲无码精品一区二区三区| 亚洲国产天堂网精品网站| 成人欧美一区二区三区在线湿哒哒| 97欧美在线视频| 一区二区不卡在线视频 午夜欧美不卡'| 懂色av色香蕉一区二区蜜桃| 麻豆免费在线观看视频| 啦啦啦在线视频免费观看高清中文| 中文字幕中文字幕精品| 日本视频不卡| 爱情岛论坛亚洲入口| 天堂网www天堂在线网| 国产sm主人调教女m视频| 久操免费在线视频| 国产又粗又长视频| 亚洲精品久久久久久久久久久| 四虎国产精品成人免费影视| 天天综合网网欲色| 欧美高清在线视频观看不卡| 黄色小说在线观看视频| 美女av在线播放| www.日韩.com| 欧美三级不卡| 欧美激情在线一区| 综合久久一区二区三区| 天天操夜夜草| 国产精品视频网址| 三级网站视频在在线播放| 无码一区二区三区| 日韩av最新在线观看| 免费黄色特级片| 视频一区视频二区视频三区视频四区国产| 日本人69视频| h片在线免费看| 黄色短视频在线观看| 日日夜夜视频| 91性感美女视频| 日韩在线播放一区| 欧美精品videos另类| 日日干日日操日日射| 国产91对白在线播放| 成人国产一区二区三区精品| 成人av影视| 亚洲欧美在线一区二区| 91网在线免费观看| 东京热一区二区三区四区| 一区二区三区 在线观看视| 日韩二区三区| 国产成人精品三级麻豆| 亚洲国产精品va在线看黑人| 欧美情侣在线播放| 青青青伊人色综合久久| 北条麻妃在线一区二区| 人人妻人人澡人人爽欧美一区双| 国产精品亚洲午夜一区二区三区| 悠悠资源网亚洲青| 国产精品自在在线| 成人无码一区二区三区| 精品一区二区三区免费爱| www99热| 久久久精品视频免费观看| 午夜爽爽爽男女免费观看| 国产福利一区在线| 国产原创一区二区三区| 动漫视频在线一区| 日本色综合中文字幕| 亚洲最新在线| 一区二区精品在线观看| 色爱综合网欧美| 久久精品中文字幕一区| 亚洲一区二区三区四区五区中文| 亚洲国产欧美国产综合一区| 在线日本制服中文欧美| 国产精品久久无码| 国产精品99久久久久久动医院| 在线视频欧美精品| 爱情岛论坛亚洲品质自拍视频网站| 男女男精品网站| 国产精品无码天天爽视频| 久久精品第九区免费观看| 国产美女精品在线| 亚洲在线激情| 日本欧美中文字幕| 亚洲色图五月天| free性m.freesex欧美| 日韩欧美一级| 欧美日韩aaaaa| 久久伊人色综合| 日韩欧美激情| 国产中文一区二区三区| 亚洲精品乱码久久久久久蜜桃动漫| 国产精品嫩草影院桃色| 无码少妇精品一区二区免费动态| 黄av在线免费观看| 欧美日韩亚洲综合一区二区三区| 天天做天天爱综合| 国产99久久久国产精品潘金网站| 亚洲少妇视频| 男人的天堂网av| 一线天自拍视频| 亚洲精品一区二区三区精华液| 激情视频网站在线观看| 亚洲综合成人婷婷小说| 日韩一区二区三区四区五区| 日本欧美黄网站| 99视频+国产日韩欧美| 欧美成年网站| 日本中文字幕在线视频观看| 中国女人一级毛片| 日韩电影免费观看高清完整| 欧美性猛交xxx乱久交| 成人国产电影在线观看| 99精品国产一区二区青青牛奶| 91在线观看| 自拍偷拍你懂的| 中文日韩在线视频| 日韩特级毛片| 亚洲精品1234| 久久精品国产亚洲AV熟女| 91香蕉在线视频| 在线免费观看av影视天堂| 亚洲三级黄色在线观看| 91热精品视频| 国产精品高潮在线| 欧美成人精品3d动漫h| 欧美亚洲另类在线观看| 少妇人妻在线视频| 无码人妻一区二区三区免费n鬼沢| 伊色综合久久之综合久久| 精品视频999| 黄色小视频在线观看| wwwwww.色| 日韩精品成人一区二区在线观看| 黑人玩欧美人三根一起进| 成人污污视频在线观看| 精品国产一区在线| 成人高清免费在线| 久久国产亚洲精品| 99久久综合狠狠综合久久止| 一区二区欧美视频| 麻豆91精品91久久久| 91精品国产综合久久久久久蜜臀| 天天做天天爱天天综合网| 欧美日本一区二区视频在线观看| 日韩欧美在线视频| 日韩精品欧美激情| 色播视频在线播放| 日本一区二区视频在线观看| 中文字幕免费精品一区| 激情婷婷欧美| 久久综合色播| 亚洲精品www久久久| 国产成人一二三区| 亚洲精品乱码久久久久久自慰| 欧美精品videosbestsex另类| 国产91精品对白在线播放| 性欧美精品一区二区三区在线播放| 国产男女无套在线播放| h片在线观看| 午夜爽爽爽男女免费观看| 日韩精品一卡二卡三卡四卡无卡| 久久久久久亚洲精品不卡4k岛国| 一区二区三区在线不卡| 精品久久久久久中文字幕| 国产国产精品| 精品人妻一区二区色欲产成人| 久久99国产综合精品免费| 91麻豆精东视频| 少妇性l交大片| 91精品国产高清久久久久久91| 一本一本a久久| 二区三区不卡| 在线成人免费av| 97在线免费观看| 国内自拍视频在线观看| 国产中文字幕久久| 黄色大秀av大片| 免费在线观看av网址| 91麻豆免费视频网站| 亚洲影视一区二区三区| av大片在线看| 艳妇乳肉亭妇荡乳av| 亚洲色欲色欲www| 91丨九色丨丰满| 久久久久久久欧美精品| 手机在线看片1024| 美女露胸视频在线观看| 精品动漫一区二区三区在线观看| 亚洲毛片在线免费观看| 国产69精品久久久久9| 欧美福利第一页| 91久久夜色精品国产网站| av播放在线观看| 中文字幕一区二区人妻视频| 97se狠狠狠综合亚洲狠狠| 亚洲在线观看免费视频| 欧美亚洲综合另类|