精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用HTML 5和Javascript設(shè)計(jì)繪圖程序

開(kāi)發(fā) 前端
在本文中,將會(huì)介紹如何使用HTML5和Javascript去設(shè)計(jì)一個(gè)簡(jiǎn)單的繪圖程序。HTML5的一個(gè)新的特性是canvas畫(huà)布功能,通過(guò)canvas畫(huà)布的強(qiáng)大功能可以實(shí)現(xiàn)繪畫(huà)不少圖形和其他絢麗的功能。

在本文中,將會(huì)介紹如何使用HTML5和Javascript去設(shè)計(jì)一個(gè)簡(jiǎn)單的繪圖程序。HTML5的一個(gè)新的特性是canvas畫(huà)布功能,通過(guò)canvas畫(huà)布的強(qiáng)大功能可以實(shí)現(xiàn)繪畫(huà)不少圖形和其他絢麗的功能。在本文中,讀者將學(xué)習(xí)到如下幾個(gè)知識(shí)點(diǎn):

1) 如何動(dòng)態(tài)在canvas畫(huà)布上繪畫(huà)圖形

2) HTML 5 canvas的前景特性探討

3) 目前瀏覽器對(duì)HTML5的兼容情況

本文的讀者對(duì)象為,對(duì)HTML 5 Canvas有初步認(rèn)識(shí)及熟悉Javascript的讀者。

設(shè)計(jì)目標(biāo)

首先,我們來(lái)設(shè)計(jì)下這個(gè)繪圖程序?qū)?huì)擁有什么功能。在這個(gè)簡(jiǎn)單的繪圖程序中,首先要有的是一塊能給用戶(hù)涂鴉的畫(huà)布區(qū)域,上面有一只可愛(ài)的小鴨,然后我們準(zhǔn)備了4種不同顏色的蠟筆,可以給用戶(hù)給這只小鴨上色,同時(shí)也要提供橡皮擦的功能,以方便隨時(shí)擦除這個(gè)小鴨。而除了蠟筆外,也提供了普通的油畫(huà)筆的效果,當(dāng)然也指定了每次繪畫(huà)時(shí)筆觸范圍的大小,這里設(shè)定了4個(gè)選擇。設(shè)計(jì)好后的繪圖應(yīng)用,效果如下圖:

在這個(gè)應(yīng)用中,用戶(hù)點(diǎn)左邊的四種顏色筆,就可以在指定的矩形框中隨便涂鴉,也可而已點(diǎn)右面兩種不同的筆觸效果(crayon蠟筆)和普通筆,也可以使用橡皮擦,也可以使用右下角四種不同的筆觸大小。

開(kāi)始使用Canvas畫(huà)布

首先,要聲明一個(gè)canvas畫(huà)布,使用如下代碼聲明:

目前,對(duì)canvas支持的最好的瀏覽器依然是FireFox,Chrome等非IE的瀏覽器,在本文的這個(gè)例子中,也兼顧了對(duì)IE瀏覽器的支持,使用的是一個(gè)開(kāi)源的JS文件,其中提供了一些對(duì)canvas的基本支持腳本(在附件下載中包含了該腳本,名稱(chēng)為excanvas.js)。因此,我們可以同時(shí)也為了兼顧IE,所以這里改用了

的方式,如下代碼:

接下來(lái),為了要使用canvas畫(huà)布的功能,必須如下調(diào)用:

  1. context = document.getElementById('canvasInAPerfectWorld').getContext("2d"); 

然而,同樣為了兼顧在IE下的使用,我們改用以下的代碼段實(shí)現(xiàn):

  1. var canvasDiv = document.getElementById('canvasDiv');  
  2.   canvas = document.createElement('canvas');  
  3.   canvas.setAttribute('width', canvasWidth);  
  4.   canvas.setAttribute('height', canvasHeight);  
  5.   canvas.setAttribute('id''canvas');  
  6.   canvasDiv.appendChild(canvas);  
  7.   if(typeof G_vmlCanvasManager != 'undefined') {  
  8.   canvas = G_vmlCanvasManager.initElement(canvas);  
  9.   }  
  10. context = canvas.getContext("2d"); 

可以看到,在上面的代碼中,通過(guò)document.createElement創(chuàng)建了一個(gè)標(biāo)簽元素canvas,然后再用setAttribute方法設(shè)置了畫(huà)布的高度和寬度等屬性(這些都可以通過(guò)設(shè)置常量屬性值進(jìn)行設(shè)置)。然后通過(guò)

  1. canvasDiv.appendChild(canvas); 

為canvasDiv增加了一個(gè)子元素canvas。然后利用excanvas.js這個(gè)專(zhuān)門(mén)為IE擴(kuò)展的canvas元素包中提供的處理方法initElement進(jìn)行相應(yīng)的判斷處理,即:

  1. if(typeof G_vmlCanvasManager != 'undefined') {  
  2.   canvas = G_vmlCanvasManager.initElement(canvas);  
  3.   } 

最后,要使用canvas的繪圖功能的話,必須調(diào)用canvas的上下文,這里使用的語(yǔ)句是:

  1. context = canvas.getContext("2d"); 

在畫(huà)布上繪畫(huà)圖形

接下來(lái),我們開(kāi)始在canvas上繪制圖形。這里我們要對(duì)4個(gè)鼠標(biāo)的相關(guān)事件進(jìn)行編碼,并且要編寫(xiě)兩個(gè)相關(guān)的方法addClick和redraw。addClick方法記錄鼠標(biāo)移動(dòng)的點(diǎn),而redraw方法則將已記錄的數(shù)據(jù)點(diǎn)在canvas畫(huà)布中繪畫(huà)出來(lái)。

先來(lái)看下鼠標(biāo)按下時(shí)的mouse down事件,代碼如下:

  1. $('#canvas').mousedown(function(e){  
  2.   var mouseX = e.pageX - this.offsetLeft;  
  3.   var mouseY = e.pageY - this.offsetTop;  
  4.   paint = true;  
  5.   addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop);  
  6.   redraw();  
  7.   }); 

其中設(shè)置的變量paint為true時(shí),表明當(dāng)前正在繪制圖形,patint為false時(shí),表示鼠標(biāo)已經(jīng)松開(kāi)。

再看下鼠標(biāo)移動(dòng)時(shí)的事件,代碼如下:

  1. $('#canvas').mousemove(function(e){  
  2.   if(paint){//是不是按下了鼠標(biāo)  
  3.   addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, true);  
  4.   redraw();  
  5.   }  
  6.  }); 

鼠標(biāo)松開(kāi)時(shí)的事件代碼為:

  1. $('#canvas').mouseup(function(e){  
  2.   paint = false;  
  3.   }); 

鼠標(biāo)移開(kāi)的事件代碼為:

  1. $('#canvas').mouseleave(function(e){  
  2.   paint = false;  
  3.   }); 

下面是addClick方法的代碼如下:

  1. var clickX = new Array();  
  2.   var clickY = new Array();  
  3.   var clickDrag = new Array();  
  4.   var paint;  
  5.   function addClick(x, y, dragging)  
  6.   {  
  7.   clickX.push(x);  
  8.   clickY.push(y);  
  9.   clickDrag.push(dragging);  
  10.   } 

可以看到,這里分別用三個(gè)數(shù)組clickX,clickY及clickDrag記錄了鼠標(biāo)移動(dòng)的點(diǎn)的X,Y坐標(biāo),以及判斷是否鼠標(biāo)松開(kāi)的標(biāo)志。

再來(lái)看下redraw這個(gè)方法,其作用為每次都清空畫(huà)板,然后重新把所有的點(diǎn)都畫(huà)過(guò),效率不高,但作為本例子來(lái)說(shuō)還是可以接受,代碼如下:

  1. function redraw(){  
  2.   canvas.width = canvas.width; // Clears the canvas  
  3.   context.strokeStyle = "#df4b26";  
  4.   context.lineJoin = "round";  
  5.   context.lineWidth = 5;  
  6.   for(var i=0; i < clickX.length; i++)  
  7.   {  
  8.   context.beginPath();  
  9.   if(clickDrag[i] && i){//當(dāng)是拖動(dòng)而且i!=0時(shí),從上一個(gè)點(diǎn)開(kāi)始畫(huà)線。  
  10.   context.moveTo(clickX[i-1], clickY[i-1]);  
  11.   }else{  
  12.   context.moveTo(clickX[i]-1, clickY[i]);  
  13.   }  
  14.   context.lineTo(clickX[i], clickY[i]);  
  15.   context.closePath();  
  16.   context.stroke();  
  17.  }  
  18.   }  

接下來(lái),再定義四種不同的顏色:紫色,綠色,棕色和黃色,分別用四個(gè)不同的變量表示,并且用變量curColor保存當(dāng)前正在使用的顏色,并且也用一個(gè)數(shù)組clickColor來(lái)記錄用戶(hù)每次選擇的顏色。代碼如下:

  1. var colorPurple = "#cb3594";  
  2.   var colorGreen = "#659b41";  
  3.   var colorYellow = "#ffcf33";  
  4.   var colorBrown = "#986928";  
  5.   var curColor = colorPurple;  
  6.   var clickColor = new Array();  

同樣,在addClick方法中,也必須加入對(duì)用戶(hù)每次選擇顏色的記錄,所以更新后的addclick代碼如下:

  1. function addClick(x, y, dragging)  
  2.   {  
  3.   clickX.push(x);  
  4.   clickY.push(y);  
  5.   clickDrag.push(dragging);  
  6.   clickColor.push(curColor);  
  7.   } 

而在redraw的方法中,我們?nèi)サ鬰ontext.strokeStyle一句,將繪畫(huà)筆的顏色設(shè)置到for循環(huán)中去設(shè)置,更新后的redraw代碼如下:

  1. function redraw(){  
  2.   /* context.strokeStyle = "#df4b26"; */ 
  3.   context.lineJoin = "round";  
  4.   context.lineWidth = 5;  
  5.   for(var i=0; i < clickX.length; i++)  
  6.   {  
  7.   context.beginPath();  
  8.   if(clickDrag[i] && i){  
  9.   contex.moveTo(clickX[i-1], clickY[i-1]);  
  10.   }else{  
  11.   context.moveTo(clickX[i]-1, clickY[i]);  
  12.   }  
  13.   context.lineTo(clickX[i], clickY[i]);  
  14.   context.closePath();  
  15.   context.strokeStyle = clickColor[i];  
  16.   context.stroke();  
  17.   }  
  18.   } 

我們?cè)僭O(shè)置畫(huà)筆每次繪畫(huà)筆觸范圍的大小,同樣,有四種選擇,分別為小,中,大和很大,并用clickSize數(shù)組記錄用戶(hù)的選擇,默認(rèn)的筆觸范圍大小用curSize進(jìn)行記錄。并且也要更新redraw方法,更新后的addClick,redraw代碼如下:

  1. function addClick(x, y, dragging)  
  2.   {  
  3.   clickX.push(x);  
  4.   clickY.push(y);  
  5.   clickDrag.push(dragging);  
  6.   clickColor.push(curColor);  
  7.   clickSize.push(curSize);  
  8.   }  
  9.   var radius;  
  10.   var i = 0;  
  11.   for(; i < clickX.length; i++)  
  12.   {  
  13.   if(clickSize[i] == "small"){  
  14.   radius = 2;  
  15.   }else if(clickSize[i] == "normal"){  
  16.  radius = 5;  
  17.   }else if(clickSize[i] == "large"){  
  18.   radius = 10;  
  19.   }else if(clickSize[i] == "huge"){  
  20.   radius = 20;  
  21.   }else{  
  22.   alert("Error: Radius is zero for click " + i);  
  23.   radius = 0;  
  24.   }  
  25.   function redraw(){  
  26.   ........ 
  27.   context.strokeStyle = clickColor[i];  
  28.   context.lineWidth = radius;  
  29.   context.stroke();  
  30.   }  
  31.   }  
  32.  
  33.   

最后,我們?cè)O(shè)置不同筆的繪畫(huà)效果,分別是蠟筆和普通筆以及橡皮擦功能。用clickTool記錄用戶(hù)選擇的工具種類(lèi),curTool則為當(dāng)前用戶(hù)選擇的工具,addClick的方法如下:

  1. function addClick(x, y, dragging)  
  2.   {  
  3.   clickX.push(x);  
  4.   clickY.push(y);  
  5.   clickDrag.push(dragging);  
  6.   if(curTool == "eraser"){  
  7.   clickColor.push("white");  
  8.   }else{  
  9.   clickColor.push(curColor);  
  10.   }  
  11.   clickColor.push(curColor);  
  12.   clickSize.push(curSize);  
  13.   }  

注意,這里判斷如果用戶(hù)選擇的工具是橡皮擦,則將白色加入到clickColor數(shù)組中。同樣要在redraw的方法中對(duì)新的兩個(gè)繪圖工具進(jìn)行處理,代碼如下:

  1. function redraw(){  
  2.   context.lineJoin = "round";  
  3.   for(var i=0; i < clickX.length; i++)  
  4.   {  
  5.   context.beginPath();  
  6.   if(clickDrag[i] && i){  
  7.   context.moveTo(clickX[i-1], clickY[i-1]);  
  8.   }else{  
  9.   context.moveTo(clickX[i]-1, clickY[i]);  
  10.   }  
  11.   context.lineTo(clickX[i], clickY[i]);  
  12.   context.closePath();  
  13.   context.strokeStyle = clickColor[i];  
  14.   context.lineWidth = radius;  
  15.   context.stroke();  
  16.   }  
  17.   if(curTool == "crayon") {  
  18.   context.globalAlpha = 0.4;  
  19.   context.drawImage(crayonTextureImage, 0, 0, canvasWidth, canvasHeight);  
  20.   }  
  21.   context.globalAlpha = 1;  
  22.   } 

這里針對(duì)當(dāng)用戶(hù)選擇“crazyon”蠟筆效果時(shí),對(duì)繪畫(huà)的效果進(jìn)行了透明度的處理。

最后,我們要把小鴨子的圖在畫(huà)布中畫(huà)上,首先要聲明一個(gè)圖片對(duì)象如下:

  1.  var outlineImage = new Image(); 

然后在prepareCanvas()方法中加載事先準(zhǔn)備好的圖片:

  1. function prepareCanvas(){  
  2.   ...  
  3.   outlineImage.src = "images/watermelon-duck-outline.png";  
  4.  
  5.   } 

最后在redraw的繪畫(huà)方法中,要使用canvas畫(huà)布的drawImage方法進(jìn)行繪畫(huà),代碼為:

  1. function redraw(){  
  2.   ...  
  3.   context.drawImage(outlineImage, drawingAreaX, drawingAreaY, drawingAreaWidth, drawingAreaHeight);  
  4.   }  

其中drawingAreaX, drawingAreaY為要在哪個(gè)具體位置繪畫(huà)圖形,drawingAreaWidth和

drawingAreaHeight則為具體圖片的寬度和高度。

我們還要把繪圖的區(qū)域限制在一個(gè)矩形框里,這要用到畫(huà)布的save和clip方法。其中save用來(lái)保存Canvas的狀態(tài),而clip方法則是指定一個(gè)區(qū)域進(jìn)行剪裁,規(guī)定了繪畫(huà)的區(qū)域,代碼如下:

  1.  function redraw()  
  2.   {  
  3.   ...  
  4.   context.save();  
  5.   context.beginPath();  
  6.   context.rect(drawingAreaX, drawingAreaY, drawingAreaWidth, drawingAreaHeight);  
  7.   context.clip(); //剪裁出指定的繪畫(huà)區(qū)域  
  8.   var radius;  
  9.   var i = 0;  
  10.   for(; i < clickX.length; i++)  
  11.   {  
  12.   ...  
  13.   }  
  14.   context.restore(); //使用restore方法,恢復(fù)每次保存的canvas狀態(tài)  
  15.   ...  
  16.   } 

總結(jié)

本文中只是對(duì)如何使用HTML5和javascript繪制小繪圖應(yīng)用進(jìn)行了思路和基本技術(shù)點(diǎn)的分析,其中著重介紹了畫(huà)布canvas的各種使用方法,完整的代碼請(qǐng)到這里下載

(http://www.williammalone.com/articles/create-html5-canvas-javascript-drawing-app/downloads/html5-canvas-drawing-app.zip ),代碼中完成實(shí)現(xiàn)了相關(guān)的各種功能,并加入了一些邏輯判斷等操作,由于篇幅關(guān)系,不再在文中詳細(xì)描述。

原文:http://tech.it168.com/a2011/1104/1269/000001269250_all.shtml

【編輯推薦】

  1. HTML 5 VS Flash 誰(shuí)是海賊王
  2. HTML 5新特性與技巧
  3. HTML 5特效頁(yè)面及js測(cè)試頁(yè)面匯總推薦
  4. 學(xué)習(xí)HTML 5的10個(gè)頂級(jí)資源
  5. 49個(gè)超炫的HTML 5示例
責(zé)任編輯:陳貽新 來(lái)源: it168
相關(guān)推薦

2011-05-25 09:34:30

HTML5cssjavascript

2013-08-26 17:41:43

JavaScriptWindows 8.1

2011-01-27 13:08:57

HTML5JavascriptWeb

2011-04-07 11:33:00

HTML 5JavaScript

2012-09-19 15:21:48

Worklight

2011-12-15 01:01:16

ibmdw

2014-10-21 17:34:11

HTML5移動(dòng)設(shè)計(jì)

2012-01-09 13:24:27

2012-05-30 09:22:56

Hybrid App助HTML5JavaScript

2013-08-30 10:02:48

2014-04-17 09:54:47

HTML5JavaScript

2014-02-11 11:21:00

html5工具

2013-09-16 10:19:08

htmlcssJavaScript

2011-03-08 10:15:08

HTML 5

2012-06-13 14:19:27

2012-02-01 09:30:54

HTML 5

2015-06-26 11:51:26

HTML5JavaScript

2013-01-18 10:59:44

IBMdW

2016-05-27 15:44:12

H5LeanCloudWex5

2010-07-28 08:41:17

HTML5Web移動(dòng)應(yīng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产精品99久久免费观看| 亚洲麻豆精品| 久久成人亚洲| 色偷偷偷亚洲综合网另类| 国产福利在线免费| 污视频网站在线免费| 成年人网站91| 国产精品久久久久9999| 男的操女的网站| 欧美日韩看看2015永久免费 | 欧美在线视频二区| 97精品人妻一区二区三区| 亚洲福利电影| www.亚洲成人| 中文人妻一区二区三区| 精品国产一区二区三区性色av| 婷婷综合另类小说色区| 中文字幕日韩一区二区三区不卡| 日本精品久久久久久| 免费在线观看成人| 91国语精品自产拍在线观看性色| 国产黄色片在线| 欧美精品中文字幕亚洲专区| 制服丝袜日韩国产| 激情婷婷综合网| 成人三级小说| 亚洲欧美日韩人成在线播放| 欧美日本韩国国产| 天堂中文在线官网| 国内成人免费视频| 国产精品福利在线观看| 日韩免费av片| 欧美成人一品| 日韩在线观看免费网站| 国产免费一区二区三区网站免费| 国产 日韩 欧美 综合 一区| 欧美一区二区成人6969| 日本肉体xxxx裸体xxx免费| 女人让男人操自己视频在线观看 | 亚洲人成网站在线播放2019| 头脑特工队2在线播放| 国产毛片精品国产一区二区三区| 国产精品国产三级国产aⅴ9色| 亚洲第一精品在线观看| 激情婷婷亚洲| 欧美激情在线有限公司| 黑人巨大精品一区二区在线| 欧美国产小视频| 亚洲性生活视频| 中文字幕一二三四区| 欧美美女在线直播| 亚洲精品理论电影| 大乳护士喂奶hd| 高清精品视频| 亚洲国产精品久久| 蜜臀aⅴ国产精品久久久国产老师| 99精品在线免费观看| 777久久久精品| 91pony九色| www999久久| 91精品国产综合久久精品图片| 五月婷婷丁香色| 日本午夜精品久久久久| 欧美群妇大交群的观看方式| 中文字幕av不卡在线| 日韩专区视频| 欧美一级在线观看| 波多野结衣中文字幕在线播放| 精品视频一二| 欧美成人乱码一区二区三区| 国产精品一区二区在线免费观看| 国产欧美自拍一区| 亚洲精品一区在线观看香蕉| 成人免费无遮挡无码黄漫视频| 国产欧美日韩影院| 色偷偷噜噜噜亚洲男人的天堂| 久久久久亚洲av片无码| 午夜精品av| 91av在线看| 波多野结衣在线电影| 久久91精品国产91久久小草| 亚洲精品欧美一区二区三区| 亚洲国产精品一| 91免费视频网| 婷婷久久五月天| av观看在线| 天天影视网天天综合色在线播放 | 蜜桃视频免费观看一区| 国产主播欧美精品| 不卡av中文字幕| 91麻豆国产香蕉久久精品| 日韩在线导航| 在线观看免费视频你懂的| 图片区日韩欧美亚洲| 男人搞女人网站| 欧美成人精品一级| 亚洲男人天堂视频| 日韩福利小视频| 夜久久久久久| 91精品视频免费观看| 欧美 日韩 国产 在线| 国产日产精品1区| 久久视频免费在线| 欧美男女交配| 欧美成人欧美edvon| 影音先锋男人在线| 亚洲夜间福利| 国产精品免费视频久久久| 亚洲国产精品久久久久爰性色| 国产情人综合久久777777| 国产一区二区三区播放| 四虎成人在线| 亚洲国产第一页| www色aa色aawww| 久久久xxx| 超碰97网站| 视频免费一区| 色婷婷国产精品| 欧美性猛交乱大交| 久久社区一区| 国产成人综合精品| 无码国产精品高潮久久99| 亚洲欧美欧美一区二区三区| 性生交免费视频| 牛牛影视久久网| 欧美区二区三区| 一级全黄裸体免费视频| 久久精品欧美日韩精品| 日韩五码在线观看| 无码国模国产在线观看| zzijzzij亚洲日本成熟少妇| 国产精品尤物视频| 91视频在线看| 精品少妇在线视频| 最新国产精品精品视频| 久久国产天堂福利天堂| 亚洲天堂视频网| 国产欧美一区二区三区沐欲 | 日韩欧美视频免费观看| 免费精品视频| 久久av免费一区| www欧美xxxx| 精品久久久久久综合日本欧美| 特一级黄色录像| 精品一区二区三区久久| 亚洲欧洲精品在线观看| 97人人做人人爽香蕉精品| 亚洲天堂av在线免费观看| 亚洲天堂一区在线| 99精品久久只有精品| 欧美成人高潮一二区在线看| 国产厕拍一区| 久久久久久久色| 蜜臀av在线观看| 亚洲电影在线免费观看| 中国特级黄色大片| 亚洲精品美女91| 久久99久久99精品蜜柚传媒| 亚洲国产成人二区| 亚洲人成电影在线观看天堂色| 香蕉影院在线观看| 日本一区免费视频| 中文av一区二区三区| 91日韩在线| 91精品国产91久久久久青草| 麻豆av在线免费观看| 日韩成人久久久| 天天操夜夜操视频| 中文av字幕一区| 在线观看中文av| 亚洲特色特黄| 久热国产精品视频一区二区三区| 日韩大片欧美大片| 视频在线观看99| www.爱爱.com| 狠狠躁天天躁日日躁欧美| 日本69式三人交| 日韩中文字幕91| 91社在线播放| 久久精品凹凸全集| 国产精品九九九| 污污的视频在线观看| 国产丝袜精品第一页| 中文字幕免费观看视频| 一区二区视频在线| 成人午夜福利一区二区| 国产真实乱偷精品视频免| 免费在线看黄色片| 国产精品亚洲二区| 亚洲自拍偷拍色图| 欧美xxxxxx| 美日韩精品免费观看视频| 天天色综合久久| 在线电影院国产精品| 日韩女优在线观看| 中文字幕一区二区在线观看| 精品1卡二卡三卡四卡老狼| 男女性色大片免费观看一区二区 | 欧美美女黄视频| 欧美日韩一级在线观看| 久久久久久久久99精品| 免费看的av网站| 老司机久久99久久精品播放免费| 天天综合五月天| 免费看日本一区二区| 亚洲综合大片69999| 成人国产精选| 97久久超碰福利国产精品…| 免费超碰在线| 亚洲乱码一区二区| www.超碰在线.com| 欧美日本一区二区三区四区| 天天操夜夜操视频| 亚洲国产色一区| 日本美女黄色一级片| 91在线云播放| 黄页网站在线看| 精品在线播放免费| 中文字幕在线导航| 国产免费成人| 国产精品久久久久久久乖乖| 婷婷综合久久| 日韩在线三区| 婷婷综合成人| 国产日韩欧美综合精品| 国产一区二区三区视频在线| 国产精品视频精品视频| 欧美男男tv网站在线播放| 欧美富婆性猛交| 超碰电影在线播放| 色婷婷综合成人av| www.av在线| 夜夜嗨av色一区二区不卡| 四虎在线视频| 亚洲精品电影久久久| 亚洲精品视频91| 91精品国产综合久久婷婷香蕉| 中国精品一区二区| 欧美色图一区二区三区| 国产主播第一页| 色一区在线观看| 中文字幕在线观看视频网站| 午夜亚洲福利老司机| 久久综合色综合| 亚洲一区二区视频在线| 久久久精品国产sm调教| 尤物av一区二区| 麻豆亚洲av成人无码久久精品| 亚洲免费观看高清完整版在线 | 国产不卡精品视男人的天堂| 久久青青视频| 国产成人aa精品一区在线播放| 成人免费网站视频| 国产999精品久久久影片官网| 中文字幕高清在线播放| 热久久免费视频精品| 日本成人三级电影| 国产精自产拍久久久久久| 丁香婷婷久久| 91网站免费观看| 日韩精品免费视频一区二区三区 | 国产成a人亚洲精v品无码 | 性鲍视频在线观看| 国产激情偷乱视频一区二区三区| 日本人妻一区二区三区| 不卡视频一二三四| 亚洲第一成人网站| 国产精品欧美久久久久无广告| 蜜桃av免费观看| 亚洲美女一区二区三区| 久久精品视频久久| 欧美日韩中文字幕在线| 亚洲 小说区 图片区| 884aa四虎影成人精品一区| 成人高潮片免费视频| 亚洲激情中文字幕| 成人影视在线播放| 九九精品视频在线观看| 日韩大片免费观看| 国产乱人伦真实精品视频| 色妞ww精品视频7777| 久久本道综合色狠狠五月| 成人aaaa| 精品人妻大屁股白浆无码| 香蕉亚洲视频| 亚洲精品性视频| 成人av电影在线网| a资源在线观看| 亚洲精品国产a久久久久久| 97免费在线观看视频| 欧美日韩在线电影| 蜜桃视频久久一区免费观看入口| 亚洲一区二区久久久| 手机在线免费av| 国产精品96久久久久久| 欧美影院在线| 日产国产精品精品a∨| 欧美成人tv| 国产一级做a爰片久久| 成人一区在线看| 亚洲一二三四视频| 婷婷六月综合网| 97人妻精品一区二区三区软件 | 人妻体内射精一区二区三区| 日本一区二区三区四区在线视频| 免费一级片在线观看| 欧美午夜不卡在线观看免费| 国模私拍视频在线| www.日韩欧美| 亚洲www免费| 国产精品一 二 三| 国产精品毛片久久| 久久久久久久少妇| 成人久久视频在线观看| 国产一区二区三区视频播放| 丰满岳妇乱一区二区三区| av一区二区三| 色99之美女主播在线视频| 亚洲精华液一区二区三区| 成人动漫视频在线观看免费| 欧美电影免费| 玩弄japan白嫩少妇hd| av中文一区二区三区| 国产精品成人免费观看| 欧美日韩免费在线视频| 欧美黄色小说| 性日韩欧美在线视频| 136福利精品导航| 樱空桃在线播放| 激情五月播播久久久精品| 日本美女xxx| 色菇凉天天综合网| 日本韩国精品一区二区| 91国产中文字幕| 福利电影一区| 日韩精品一区在线视频| 国产99久久久国产精品| 中文字幕在线观看成人| 337p亚洲精品色噜噜噜| 国产原创视频在线观看| 成人精品视频99在线观看免费| 不卡av一区二区| 中文字幕 91| 国产精品久久久久久久蜜臀| 国产乱码在线观看| 这里只有精品视频在线| 黄色精品视频| 一区二区三区电影| 久久99国产精品尤物| 欧美成人777| 精品日韩在线观看| 暧暧视频在线免费观看| 久久riav二区三区| 巨乳诱惑日韩免费av| av黄色在线免费观看| 欧美亚洲国产一区二区三区va | 中文字幕的久久| 亚洲系列在线观看| 久久精品99久久香蕉国产色戒| 亚洲欧洲二区| 免费日韩在线观看| 暴力调教一区二区三区| 国产成人无码一区二区在线播放| 亚洲天堂第一页| 日韩深夜福利网站| 国产性生活免费视频| av亚洲精华国产精华| 久久久久久久久久久影院| 在线观看欧美视频| 经典三级久久| 日本午夜激情视频| 国产午夜精品久久久久久久| 中日韩av在线| 久久99热精品| 国产精品亚洲片在线播放| 中文字幕永久有效| 亚洲国产精品欧美一二99| 欧美日韩伦理片| 91久久久精品| 亚洲少妇诱惑| 欧美a级片免费看| 亚洲成人av片在线观看| 日本综合字幕| 国产 欧美 日韩 一区| 久久蜜桃香蕉精品一区二区三区| 特级西西444www高清大视频| 免费91在线视频| 久9久9色综合| 美女被艹视频网站| 日韩欧美福利视频| www.久久ai| 欧美不卡三区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 精品一区二区三区亚洲| 116极品美女午夜一级| 专区另类欧美日韩| 日本一本草久在线中文| 亚洲自拍偷拍区| 久久综合九色| 日韩成年人视频|