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

利用HTML5 Canvas創(chuàng)建交互式Bubble Chart

移動(dòng)開發(fā)
眾所周知資訊圖像一種使數(shù)據(jù)易于理解和充滿娛樂性的方式。不同的人采用不同的方式使數(shù)據(jù)易于理解充滿娛樂性,一些人通過充滿創(chuàng)意的平面設(shè)計(jì)實(shí)現(xiàn)這個(gè)目標(biāo)如打印資訊信息,另外也有一些人通過增加動(dòng)畫和交互性實(shí)現(xiàn)目標(biāo)。軟件工程師、研究者、業(yè)余設(shè)計(jì)師Josh Marinacci強(qiáng)烈推薦讀者看Hans Rosling教授和一群富有想象力的人的TED會談。這個(gè)會談揭露了關(guān)于發(fā)展中國家的共同的神話。會談中Rosling教授成功的關(guān)鍵是他采用一種非專業(yè)人士不能理解的方式渲染數(shù)據(jù)。他作品的核心是一個(gè)令人驚奇的Bubble Chart,可以隨著時(shí)間的推移比較世界上的各個(gè)地

Josh Marinacci也在其博客中詳細(xì)地介紹了“如何利用HTML5 Canvas創(chuàng)建可以在移動(dòng)桌面上運(yùn)行的交互式圖表以及如何利用真實(shí)數(shù)據(jù)填充圖表。”下面讓我們跟隨作者學(xué)習(xí)如何創(chuàng)建我們自己的Bubble Chart。

準(zhǔn)備工作:

需要知識:媒介HTML和JavaScript

需求:文本編輯器和現(xiàn)代瀏覽器

關(guān)于Bubble Chart

Bubble Chart就和它聽起來一樣是由氣泡組成的圖表,氣泡實(shí)際上就是一些圓。但是Bubble Chart卻能可視化五維數(shù)據(jù),這也是其強(qiáng)大之處。每個(gè)氣泡代表由 X和Y坐標(biāo)定位的數(shù)據(jù)點(diǎn),這和任何其他的線狀圖和散點(diǎn)圖一樣??墒敲總€(gè)氣泡的大小和顏色屬性可以表示另外兩維的數(shù)據(jù)。如果我們動(dòng)態(tài)顯示圖表,那么我們可以增加時(shí)間作為第五維數(shù)據(jù)。

盡管Bubble Chart的五個(gè)屬性都可以代表任何類型的數(shù)據(jù),但是實(shí)踐中我們通常用X和Y坐標(biāo)代表數(shù)字型數(shù)據(jù),而氣泡顏色這個(gè)屬性用于區(qū)分兩個(gè)不同的數(shù)據(jù)集。例如利用X和Y分表代表兒童的“死亡數(shù)”和“受教育比例”,而氣泡顏色代表不同的國家。氣泡大小一般用來代表某種事物的數(shù)量如某個(gè)國家的人口。當(dāng)動(dòng)態(tài)顯示圖標(biāo)時(shí),第五維的坐標(biāo)用來代表時(shí)間如表示從1960年到現(xiàn)在。仔細(xì)地創(chuàng)造性地使用這些氣泡屬性是創(chuàng)造出一個(gè)與眾不同的資訊圖標(biāo)的關(guān)鍵。

利用模擬數(shù)據(jù)創(chuàng)建簡單的圖表

數(shù)據(jù)本身應(yīng)該代表按照一定標(biāo)準(zhǔn)分組隨著時(shí)間變化的數(shù)據(jù)點(diǎn)。假設(shè)數(shù)據(jù)由5格國家,20個(gè)時(shí)間點(diǎn)(從1980到2000年)的數(shù)據(jù)組成。每個(gè)數(shù)據(jù)點(diǎn)由x、y和大小三個(gè)屬性組成。初始化這些模擬數(shù)據(jù)的代碼如下:

var data = [];

for(var t=0; t<20; t++) {

var cdata = [];

data[t] = cdata;

for(var country=0; country<5; country++) {

cdata.push({

x:50+Math.random()*500,

y:50+Math.random()*300 ,

size: 3+Math.random()*20,

country: country});

}

}

接下來在屏幕上用氣泡描繪出這些數(shù)據(jù),代碼如下:

var canvas = document.getElementById(‘canvas’);

var ctx = canvas.getContext(’2d’);

var colors = ["red","green","blue","yellow","orange"];

var time = 0;

function draw() {

//bg and border

ctx.fillStyle = ”white”;

ctx.fillRect(0,0, canvas.width,canvas.height);

ctx.strokeStyle = ”black”;

ctx.strokeRect(0,0,canvas.width,canvas.height);

//time indicator

ctx.fillStyle = ”black”;

ctx.fillText(“time “ + time, 10,20);

//draw the data for the current time slice

data[time].forEach(function(d) {

ctx.save();

ctx.fillStyle = colors[d.country%colors.length];

ctx.globalAlpha = 0.5;

ctx.beginPath();

ctx.arc(d.x,d.y,d.size,0,Math.PI*2);

ctx.fill();

ctx.restore();

});

}

上述代碼用白色填充背景,利用Canvas邊框作為背景的邊界。然后描繪當(dāng)前時(shí)間指示器,***描繪數(shù)據(jù)本身。每個(gè)數(shù)據(jù)點(diǎn)都根據(jù)當(dāng)前點(diǎn)的x、y和大小描繪成相應(yīng)的圓。每個(gè)國家的顏色從定義的顏色列表中選取。

基本表如下:

為了增加表的時(shí)間屬性,我們只需要用不同的時(shí)間變量重復(fù)調(diào)用描繪函數(shù)重復(fù)描繪即可。代碼如下:

$(“#play”).click(function() {

var animdraw = function() {

draw();

time++;

if(time < data.length) {

setTimeout(animdraw,100);

} else {

time = 0;

}

}

animdraw();

});

獲取“世界數(shù)據(jù)銀行”的數(shù)據(jù)

至此已經(jīng)創(chuàng)建了一個(gè)基本表。下面讓我們利用一些真實(shí)的數(shù)據(jù)填充這個(gè)表讓它更有意思。我們從“世界數(shù)據(jù)銀行”選擇需要的數(shù)據(jù),它是一個(gè)龐大的組織,具有從UN和其他公開的數(shù)據(jù)源采集到的龐大的數(shù)據(jù)集。除了數(shù)據(jù)承載基地,它還有一個(gè)定制的報(bào)表生成器,它可以讓你創(chuàng)建數(shù)據(jù)切片以支持多種格式的數(shù)據(jù)下載。

本文選擇了“世界發(fā)展指標(biāo)和全球發(fā)展金融”數(shù)據(jù)庫。選擇“東亞及太平洋地區(qū)”,“歐洲和中亞”,“拉丁美洲和加勒比地區(qū)”一些國家或地區(qū)作為集合,利用氣泡的顏色屬性表示不同的集合。選擇“死亡率”、“人口密度”、“總?cè)丝?rdquo;作為研究點(diǎn),分別用x、y坐標(biāo)以及氣泡的大小屬性表示。***選擇了時(shí)間變量。簡單的點(diǎn)擊“全選”按鈕即可選擇從1960年到現(xiàn)在以年為單位的數(shù)據(jù)變量。

現(xiàn)在我們已經(jīng)選定了一份報(bào)告。點(diǎn)擊“導(dǎo)出”按鈕下載CSV文件格式的數(shù)據(jù)。我們可以利用Excel打開CSV文件查看從“世界數(shù)據(jù)銀行”所得到的這份報(bào)告的內(nèi)容。如果你利用Excel打開下載的CSV文件,將看到每個(gè)國家或者地區(qū)都有三行組成,我們選擇的每個(gè)變量都有一行。另外你可能看到早年的一些數(shù)據(jù)值并不存在,這意味著那幾年并沒有收集這些國家的數(shù)據(jù)。

解析CSV數(shù)據(jù)

如果你用Excel打開報(bào)告,它看起來只是一堆行。我們需要把數(shù)據(jù)解析成我們能用的形式。為了解析數(shù)據(jù)文件,我們需要CSV解析程序。Josh Marinacci從Ben Nadel下載了一個(gè)解析程序,很好用。為了下載CSV文件并解析它Josh Marinacci使用AJAX調(diào)用jQuery。

$(“#load”).click(function() {

$.ajax({

url: ”data.csv”,

context: document.body,

success: function(c) {

var csvdata = CSVToArray(c);

console.log(“got to here “ + csvdata[1]);

}

});

}

CSV文件被解析成由許多行組成的文件,這些行可以繼續(xù)進(jìn)行子劃分被劃分成列。我們可以通過先列循環(huán)再行循環(huán)的方式處理CSV文件。

data = [];

//start at 9 to skip non-year columns and first few years

for(var t=9; t

var cdata = [];

//loop through rows by threes

for(var i=1; i

var row_mort = csvdata[i];

var row_dens = csvdata[i+1];

var row_total = csvdata[i+2];

var country = (i-1)/3;

cdata.push({

x:row_dens[t] ,

y:row_mort[t],

size: row_total[t],

country: country,

});

}

data[t-9] = cdata;

}

注意上述代碼是從第9列開始處理數(shù)據(jù)的,不僅跳過了數(shù)據(jù)不完整的的前幾年的數(shù)據(jù)點(diǎn)也跳過了一些元數(shù)據(jù)(如國家名字等等)。處理行的時(shí)候每次循環(huán)是處理三行數(shù)據(jù)目的是通過一次循環(huán)可以處理一個(gè)國家或地區(qū)的數(shù)據(jù)。

如果僅僅按照這種方式處理數(shù)據(jù),我們將什么都看不到。整個(gè)Canvas都被單一的顏色填充,這不是我們想要的結(jié)果。這是因?yàn)閿?shù)據(jù)并沒有按比例進(jìn)行適當(dāng)?shù)臄U(kuò)展。例如在1960年東亞和太平洋地區(qū)的人口是10億。為了描繪圖表需要按比例縮小這個(gè)值。為了適用于這些未修改的數(shù)據(jù)在繪制圖表的時(shí)Josh Marinacci使用了可擴(kuò)展的功能。只需要采用如下方式改變弧度即可:

ctx.arc(

d.x*6,

canvas.height-d.y*2.5,

d.size/(1000*1000*11),

0,Math.PI*2

);

上述代碼修改了x、y和氣泡大小的值適應(yīng)Canvas。氣泡大小必須除以1100萬才能得到合理的氣泡半徑。Y值由Canvas高度減去y乘以2.5得到。Canvas的標(biāo)準(zhǔn)坐標(biāo)系要從左上方開始以便被Canvas高度減去之后可以翻轉(zhuǎn)y坐標(biāo)。

修改數(shù)據(jù)變量的值是可以任意選取的,選擇某個(gè)特定的值是為了讓表格看起來比較美觀。具體選擇什么值依賴于正在描繪的數(shù)據(jù)。可以寫一個(gè)程序分析數(shù)據(jù)尋找合理的參數(shù)值,比如通過計(jì)算每一個(gè)變量的***值或者最小值。

表格看起來如下:

增加交互性

賦予表格時(shí)間這一點(diǎn)很好,增加表格的交互性實(shí)際上就是讓圖表閱讀者通過點(diǎn)擊不同的氣泡獲取更多的信息。由于Canvas完全使用像素而不是我們需要的圖形,這種圖形使得通過程序我們可以計(jì)算哪一個(gè)圖形被點(diǎn)擊了。幸運(yùn)地是Canvas中的氣泡都是***的圓,這將使事情容易很多。我們只需要計(jì)算被點(diǎn)擊點(diǎn)與氣泡圓心的距離即可,如果距離小于半徑就認(rèn)為該氣泡被點(diǎn)擊。代碼如下:

$(“#canvas”).mousedown(function(e) {

displayInfo = false;

data[time].forEach(function(d) {

var x = d.x*6;

var y = canvas.height-d.y*2.5;

var radius = d.size/(1000*1000*11);

var dis = dist(e.offsetX,e.offsetY,x,y);

if(dis < radius) {

displayInfo = true;

displayCountry = d.country;

}

});

draw();

});

如果讀者已經(jīng)點(diǎn)擊了某個(gè)圖形,顯示信息的布爾值將變?yōu)?ldquo;true”,保存當(dāng)前的國家并觸發(fā)重繪操作,同時(shí)在右上方通過代碼嵌入一個(gè)小的信息板。

注意在重繪代碼中填充的數(shù)據(jù)是來自于當(dāng)前時(shí)間片而不是用戶點(diǎn)擊表格時(shí)的時(shí)間。這就意味著當(dāng)表格被賦予時(shí)間屬性之后顯示的內(nèi)容將更新以便用戶可以看到隨著時(shí)間變化的數(shù)據(jù)。

if(displayInfo) {

ctx.save();

ctx.translate(canvas.width-305,5);

ctx.fillStyle = ”rgba(200,200,200,0.7)”;

ctx.fillRect(0,0,300,100);

ctx.strokeStyle = ”black”;

ctx.lineWidth = 2;

ctx.strokeRect(0,0,300,100);

ctx.fillStyle = ”black”;

var displayPoint = data[time][displayCountry];

ctx.fillText(“Region: “ + regions[displayPoint.country],5,20);

ctx.fillText(“Population Density: “ + displayPoint.x,5,20+20*1);

ctx.fillText(“Mortality rate: “ + displayPoint.y,5,20+20*2);

ctx.fillText(“Population: “ + displayPoint.size,5,20+20*3);

ctx.restore();

}

改變圖表的視覺效果

一般而言圖報(bào)表不應(yīng)該有這么多的可視元素否則將減損數(shù)據(jù)的潛在表現(xiàn)性,但是選擇一個(gè)***的顏色和模式將產(chǎn)生巨大的差別。為了讓這個(gè)表看起來更好,Josh Marinacci給每個(gè)氣泡增加了一層白色覆蓋物使圓更加***。同時(shí)也給每個(gè)圓增加一個(gè)黑色的邊框并為每個(gè)集合選擇不同的顏色。相對于計(jì)算每個(gè)氣泡顏色的漸變度Josh Marinacci采用先選擇一個(gè)基本的顏色然后改變它的透明度的方式為每個(gè)不同的氣泡選擇顏色。

var radgrad = ctx.createRadialGradient(

x-radius/10,y-radius/10,0,

x-radius/10,y-radius/10,radius+30);

radgrad.addColorStop(0, ’white’);

radgrad.addColorStop(0.5, ’white’);

radgrad.addColorStop(1, ’rgba(255,255,255,0.3)’);

ctx.globalAlpha = 0.6;

ctx.fillStyle = radgrad;

ctx.fill();

為了使圖表更加美觀上述代碼改變了字體增加了邊框,使用了一個(gè)來自于Subtle Patterns網(wǎng)站充滿娛樂性的背景。最終圖表如下:

總結(jié)

上面就是創(chuàng)建Bubble Chart的基本過程。利用上面的基本圖表你可以創(chuàng)建自己的Bubble Chart。你可以增加數(shù)據(jù)自動(dòng)調(diào)整功能,讓圖表閱讀者自己選擇數(shù)據(jù)集合擴(kuò)大或者縮小,你也可以在每個(gè)時(shí)間間隔中插入時(shí)間使時(shí)間劃分更細(xì),動(dòng)態(tài)過程更流暢。

你可以從這獲取工程源碼,也可以從作者的個(gè)人網(wǎng)站JoshOnDesign.com獲取

原文鏈接:

http://www.netmagazine.com/tutorials/create-interactive-bubble-chart-html5-canvas

責(zé)任編輯:佚名 來源: Web App Trend
相關(guān)推薦

2016-11-29 12:25:56

Python大數(shù)據(jù)數(shù)據(jù)可視化

2023-09-28 08:29:15

開源工具集語音識別

2023-06-27 13:46:20

2024-07-25 08:58:16

GradioPython數(shù)據(jù)應(yīng)用

2023-12-18 15:02:00

PyechartsPython數(shù)據(jù)可視化工具

2015-07-14 09:50:28

PHPHTML5

2013-12-11 10:41:00

jQuery插件

2025-11-13 09:16:29

2019-01-03 09:06:55

Node.js命令行工具 前端

2020-12-31 10:29:05

數(shù)據(jù)可視化可視化工具編碼

2025-02-25 10:40:00

圖像生成工具模型

2013-07-08 09:45:50

html5

2023-10-12 16:37:36

模型學(xué)習(xí)

2019-09-06 14:51:40

Python數(shù)據(jù)庫腳本語言

2012-02-24 15:28:36

ibmdw

2017-07-05 16:22:09

HTML5canvas動(dòng)態(tài)

2011-07-21 15:34:36

iPhone HTML5 Canvas

2012-08-30 10:18:09

HTML5CanvasHTML5實(shí)例

2015-10-08 08:48:44

HTML5canvas動(dòng)畫

2013-09-22 16:22:21

點(diǎn)贊
收藏

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

精品高清一区二区三区| 成a人片国产精品| 日韩视频在线免费观看| 中文字幕在线视频精品| 日本在线视频www鲁啊鲁| 丰满白嫩尤物一区二区| 国产成人精品一区二区三区| 一区二区国产精品精华液| 国产精品对白久久久久粗| 在线亚洲一区二区| 久久99国产精品一区| 深爱五月激情五月| 国内外成人在线| 性欧美xxxx| 日本一级特级毛片视频| 天堂av一区二区三区在线播放| 欧美顶级少妇做爰| 日韩avxxx| 欧美bbbxxxxx| 国产精品传媒视频| 久久精品国产精品国产精品污 | 涩视频在线观看| 成人亚洲综合| 大桥未久av一区二区三区| 一区视频二区视频| 蜜桃免费在线| 成人视屏免费看| 成人免费看片视频| 伊人久久久久久久久久久久| 亚洲东热激情| 欧美床上激情在线观看| 成人小视频免费看| 婷婷综合一区| 亚洲成人在线视频播放| 国产精品探花在线播放| 久久久久久久性潮| 一本一本大道香蕉久在线精品| 韩日视频在线观看| 日韩伦理电影网站| 亚洲人xxxx| 国产麻豆电影在线观看| 色老头视频在线观看| 国产视频911| 欧美大香线蕉线伊人久久| 人妻妺妺窝人体色www聚色窝| 国产一区二区视频在线播放| 成人午夜小视频| 91在线你懂的| 精品无人码麻豆乱码1区2区| 国产欧美 在线欧美| 超碰在线免费97| 日日夜夜精品视频免费| 国产激情综合五月久久| 亚洲精品无码久久久久| 日韩成人免费电影| 国产精品久久久久久av下载红粉| 亚洲 欧美 日韩 在线| 久久国产精品久久久久久电车 | 异国色恋浪漫潭| www在线观看播放免费视频日本| 综合精品久久久| 久久久久久久久影视| caopen在线视频| 一区二区三区在线播| 91成人综合网| 欧美日韩在线观看首页| 色综合久久久久久久久| 精品久久久久久久无码| 福利一区二区| 欧美一二三四区在线| 中文字幕一区二区三区人妻在线视频| 日韩中文字幕| 亚洲精品videossex少妇| av在线网站观看| 三区四区不卡| 久久成人免费视频| 日韩精品视频播放| 国产精品丝袜xxxxxxx| 国产精品第8页| 国产乱码久久久久| 国产91精品一区二区| 久久综合伊人77777麻豆| 丁香婷婷在线观看| 亚洲欧美偷拍另类a∨色屁股| 久久精品无码中文字幕| 成人国产二区| 欧美日韩高清一区| 中国特级黄色大片| 精品香蕉视频| 九九热这里只有精品6| a v视频在线观看| 免费精品视频最新在线| 91中文在线观看| 天堂在线中文资源| 国产精品久久久久久久久动漫| 国产a级黄色大片| 成人线上视频| 日韩欧美激情四射| 色欲AV无码精品一区二区久久| 911精品美国片911久久久| 性金发美女69hd大尺寸| 一级片免费观看视频| www.日韩av| 中文字幕欧美人与畜| 成av人片在线观看www| 欧美日本国产视频| aaaaaav| 亚洲精品成人无限看| 国产成人精品久久二区二区| 超碰在线人人干| 国产精品区一区二区三区| 国产男女免费视频| 欧美第一在线视频| 一区二区三区日韩在线| 日韩经典在线观看| 国产福利一区二区三区在线视频| 日本一区二区三区视频在线观看| 伊人电影在线观看| 欧美日韩亚洲综合| aaaaa级少妇高潮大片免费看| 亚洲精品久久久| 国产精品久久久久久久电影| 午夜影院在线视频| 亚洲一区欧美一区| 999在线精品视频| 国产一区二区三区四区大秀| 久久久久久久久久亚洲| 国产精品欧美久久久久天天影视 | 精品亚洲一区二区三区四区五区高| 午夜激情在线观看| 色八戒一区二区三区| 国产 中文 字幕 日韩 在线| 欧美成人久久| 91在线网站视频| 精品自拍一区| 欧美日韩中文字幕精品| www在线观看免费视频| 在线亚洲成人| 久久99精品国产99久久| 第一av在线| 精品日韩在线一区| 免费一级肉体全黄毛片| 韩国一区二区三区| 在线综合视频网站| 996久久国产精品线观看| 这里精品视频免费| 最近中文字幕在线观看视频| 国产亚洲成av人在线观看导航| 国产精品秘入口18禁麻豆免会员| 大型av综合网站| 欧美激情国产精品| 成人毛片视频免费看| 夜夜亚洲天天久久| 成年女人免费视频| 亚洲人妖在线| 美国av一区二区三区| 亚洲最新无码中文字幕久久| 精品视频久久久| 国产成人无码专区| 中日韩av电影| 国内av一区二区| 欧美极品一区二区三区| 国产精品一区在线观看| 在线能看的av网址| 国产亚洲美女精品久久久| 无码人妻精品一区二区三区9厂 | 91在线你懂得| aaa毛片在线观看| 成人情趣视频网站| 成人午夜两性视频| av中文在线资源库| 精品视频在线观看日韩| 国产情侣呻吟对白高潮| 成人欧美一区二区三区在线播放| 欧美激情第四页| 亚洲看片一区| 午夜欧美一区二区三区免费观看| 亚洲网站免费| 欧美激情女人20p| 青青草免费在线| 欧美另类videos死尸| 免费看一级一片| 91麻豆swag| 亚洲精品永久视频| 在线观看视频免费一区二区三区| 欧美在线一二三区| 天堂av一区| 国产97免费视| 91香蕉在线观看| 亚洲免费伊人电影在线观看av| 亚洲天堂777| 午夜精品一区二区三区三上悠亚 | 亚洲精品国产一区二区三区四区在线| 精品1卡二卡三卡四卡老狼| 视频一区视频二区中文| 污污污污污污www网站免费| 岳的好大精品一区二区三区| 成人亲热视频网站| 欧美电影免费看| 欧美美女操人视频| 国产高清一区在线观看| 精品福利二区三区| 国产一区二区三区黄片| 精品女厕一区二区三区| 国产精品国产精品88| 久久网站热最新地址| aaaaaaaa毛片| 美女在线观看视频一区二区| 免费av手机在线观看| 99精品视频精品精品视频| 久久精品女人的天堂av| 精品一级视频| 国产精品久久久久久久美男| 黄色软件视频在线观看| 欧美日韩成人精品| 色欧美激情视频在线| 亚洲欧美日韩精品久久亚洲区 | 久久av影院| 热久久99这里有精品| 久久不射影院| 久久精品成人动漫| 成年在线电影| 亚洲女同精品视频| 日韩一级片免费| 日韩欧美一级在线播放| 国产又粗又猛又黄| 在线观看免费一区| 你懂的国产在线| 黑人欧美xxxx| 免费看日韩毛片| 亚洲午夜影视影院在线观看| 91人妻一区二区三区蜜臀| 国产人妖乱国产精品人妖| 91精品人妻一区二区三区| 99久久99久久综合| 少妇被狂c下部羞羞漫画| 国产精品亚洲视频| 日本中文字幕在线不卡| 国内精品久久久久影院薰衣草| 国产日韩欧美久久| 奇米精品一区二区三区四区 | 超碰这里只有精品| 国产91精品在线播放| 网友自拍亚洲| 日本高清视频一区| 三级成人在线| 国产精品jizz在线观看麻豆| 日韩美女在线看免费观看| 热草久综合在线| 欧美日韩五区| 成人激情在线播放| 精品国产一区二区三区性色av| 91在线视频导航| 日韩免费高清视频网站| 产国精品偷在线| 老汉色老汉首页av亚洲| 精品日产一区2区三区黄免费| 午夜精品福利影院| 日本在线观看一区| 欧美丰满日韩| 国产欧美123| 亚洲黄页一区| 国产a视频免费观看| 日本特黄久久久高潮 | 懂色av一区二区夜夜嗨| 一级黄色免费视频| 久久综合九色综合欧美就去吻| 国产人妻一区二区| 国产精品久久久久婷婷二区次| 亚洲国产123| 亚洲第一综合色| 中文在线第一页| 欧美日韩综合在线免费观看| 一级片视频网站| 欧美不卡在线视频| 三区在线观看| www.xxxx欧美| 538在线精品| 国产精品女主播视频| 日韩一区免费| 美女亚洲精品| 婷婷另类小说| 国产91对白刺激露脸在线观看| 青青草97国产精品免费观看 | 欧美二区在线视频| 免费视频最近日韩| 亚洲熟女一区二区三区| 久久久综合网站| 波多野结衣亚洲一区二区| 婷婷综合五月天| 一级黄色片在线看| 亚洲国产高潮在线观看| 97超碰国产一区二区三区| 九九久久国产精品| 韩国女主播一区二区| 动漫3d精品一区二区三区| 国产99亚洲| 4444在线观看| 巨乳诱惑日韩免费av| 日本少妇一级片| 国产日韩精品一区二区三区| 欧美日韩在线观看成人| 色国产精品一区在线观看| 精品久久久久成人码免费动漫| 亚洲欧美国产精品久久久久久久| 成人午夜在线影视| 国产福利视频一区二区| 国产色噜噜噜91在线精品| 黄色高清视频网站| 视频一区视频二区中文字幕| 精品视频站长推荐| 亚洲色图欧美激情| 欧美另类高清videos的特点| 亚洲国产一区自拍| av中文字幕在线播放| 国产精品高精视频免费| 久久香蕉精品香蕉| 国产一二三四区在线观看| 免费成人在线观看| 深爱五月激情网| 亚洲成av人片| 亚洲免费成人在线| 欧美成人网在线| 99亚洲男女激情在线观看| 水蜜桃亚洲精品| 亚洲男女自偷自拍| 漂亮人妻被黑人久久精品| 一区二区三区成人在线视频| 一级黄色短视频| 这里只有精品视频| 亚洲不卡系列| 日韩欧美亚洲在线| 久久夜色精品| 一区二区精品免费| 色综合久久综合中文综合网| 香港三日本三级少妇66| 欧美极品第一页| 99这里只有精品视频| 亚洲精品少妇一区二区| 国产一区不卡在线| 放荡的美妇在线播放| 91精品国产综合久久婷婷香蕉| av黄色在线观看| 国产精品视频自在线| 国语产色综合| 超碰在线97免费| 欧美国产精品v| 中文字幕在线网址| 日韩在线观看免费全| 成人在线日韩| 亚洲色婷婷久久精品av蜜桃| 国产精品中文字幕欧美| 97成人资源站| 日韩丝袜情趣美女图片| 久草在线视频网站| 精品国产免费人成电影在线观...| 国产视频亚洲| av男人的天堂av| 欧美日韩精品二区第二页| 麻豆传媒在线免费| 99久久伊人精品影院| 国产精品九九| 搡老熟女老女人一区二区| 色狠狠色狠狠综合| 免费在线视频欧美| 99久久一区三区四区免费| 日韩一区二区久久| 手机看片日韩av| 91精品在线观看入口| 国产第一页在线视频| 久久精品国产精品国产精品污| 日本免费新一区视频| 538精品在线视频| 亚洲福利精品在线| 久久天堂av| 国产精品久久成人免费观看| 成人免费视频播放| 国产精品传媒在线观看| 麻豆成人在线看| 三级精品视频| 狠狠干狠狠操视频| 亚洲第一综合色| 日本黄色片在线观看| 国产乱码一区| 美国毛片一区二区三区| 免费毛片一区二区三区| 中文字幕亚洲图片| 国产伦精品一区二区三区在线播放 | 一起草在线视频| 欧美日韩国产小视频| 国产乱码在线| 视频一区二区三区在线观看| 国产成人精品亚洲777人妖| 日韩在线播放中文字幕| 欧美成人免费va影院高清| 杨幂一区二区三区免费看视频| 日本高清免费在线视频| 91福利视频网站| 成人av影院在线观看| 亚洲一区精彩视频|