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

主頁 > 知識庫 > html5+css3氣泡組件的實現(xiàn)

html5+css3氣泡組件的實現(xiàn)

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

氣泡組件在實際工作中非常普遍,無論是網(wǎng)頁中還是app中,比如:

我們這里所謂氣泡組件是指列表型氣泡組件,這里就其dom實現(xiàn),css實現(xiàn),js實現(xiàn)做一個討論,最后對一些細節(jié)點做一些說明,希望對各位有用

小釵最近初學(xué)CSS,這里做一個專題,便于自身CSS提升,文章有不少問題與可優(yōu)化點,請各位指導(dǎo)

組件分類

單由氣泡組件來說,他仍然屬于“彈出層”類組件,也就是說其會具有這些特性:

① 布局為脫離文檔流

② 可以具有mask蒙版,并且可配置點擊蒙版是否關(guān)閉的特性

③ 可選的特性有點擊瀏覽器回退關(guān)閉組件以及動畫的顯示與隱藏動畫特性

其中比較不同的是:

① 不是居中定位

② 具有一個箭頭標識,并且可以設(shè)置再上或者在下

③ 因為具有箭頭,而且這個箭頭是相對于一個元素的,一般意義上我們?nèi)蝿?wù)是相對某個按鈕,所以說具有一個triggerEL

所以單從這里論述來說,我們的組件名為BubbleLayer,其應(yīng)該繼承與一個通用的Layer

但是,就由Layer來說,其最少會具有以下通用特性:

① 創(chuàng)建——create

② 顯示——show

③ 隱藏——hide

④ 摧毀——destroy

而以上特性并不是Layer組件所特有的,而是所有組件所特有,所以在Layer之上還應(yīng)該存在一個AbstractView的抽象組件

至此繼承關(guān)系便出來了,拋開多余的接口不看,簡單來說是這樣的:

組件dom層面實現(xiàn)最簡單實現(xiàn)

單從dom實現(xiàn)來說,其實一個簡單的ul便可以完成任務(wù)


復(fù)制代碼
代碼如下:

<ul class="cui-bubble-layer" style="position: absolute; top: 110px; left: 220px;">
<li data-index="0" data-flag="c">價格:¥35</li>
<li data-index="1" data-flag="c">評分:80</li>
<li data-index="2" data-flag="c">級別:5</li>
</ul>

當(dāng)然這里要有相關(guān)的css


復(fù)制代碼
代碼如下:

.cui-bubble-layer {
background: #f2f2f2;
border: #bcbcbc 1px solid;
border-radius: 3px
}

至此形成的效果是醬紫滴:


復(fù)制代碼
代碼如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Blade Demo</title>
<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta content="telephone=no" name="format-detection" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<style type="text/css">
body, button, input, select, textarea { font: 400 14px/1.5 Arial, "Lucida Grande" ,Verdana, "Microsoft YaHei" ,hei; }
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td, hr, button, article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { margin: 0; padding: 0; }
body { background: #f5f5f5; }
ul, ol { list-style: none; }

.cui-bubble-layer { background: #f2f2f2; border: #bcbcbc 1px solid; border-radius: 3px; }
</style>
</head>
<body>
<ul class="cui-bubble-layer" style="position: absolute; top: 110px; left: 220px;">
<li data-index="0" data-flag="c">價格:¥35</li>
<li data-index="1" data-flag="c">評分:80</li>
<li data-index="2" data-flag="c">級別:5</li>
</ul>
</body>
</html>

這個時候在為其加一個偽類,做點樣式上的調(diào)整,便基本實現(xiàn)了,這里用到了偽類的知識點:


復(fù)制代碼
代碼如下:

cui-bubble-layer:before {
position: absolute; content: ""; width: 10px; height: 10px; -webkit-transform: rotate(45deg);
background: #f2f2f2;
border-top: #bcbcbc 1px solid;
border-left: #bcbcbc 1px solid;
top: -6px; left: 50%; margin-left: -5px; z-index: 1;
}

這里設(shè)置了一個絕對定位的矩形框,為其兩個邊框設(shè)置了值,然后變形偏斜45度形成小三角,然后大家都知道了


復(fù)制代碼
代碼如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Blade Demo</title>
<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta content="telephone=no" name="format-detection" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<style type="text/css">
body, button, input, select, textarea { font: 400 14px/1.5 Arial, "Lucida Grande" ,Verdana, "Microsoft YaHei" ,hei; }
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td, hr, button, article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { margin: 0; padding: 0; }
body { background: #f5f5f5; }
ul, ol { list-style: none; }

.cui-bubble-layer { background: #f2f2f2; border: #bcbcbc 1px solid; border-radius: 3px; }
.cui-bubble-layer > li { padding: 5px 10px; }
.cui-bubble-layer:before { position: absolute; content: ""; width: 10px; height: 10px; -webkit-transform: rotate(45deg); background: #f2f2f2; border-top: #bcbcbc 1px solid; border-left: #bcbcbc 1px solid; top: -6px; left: 50%; margin-left: -5px; z-index: 1;</style>
</head>
<body>
<ul class="cui-bubble-layer" style="position: absolute; top: 110px; left: 220px;">
<li data-index="0" data-flag="c">價格:¥35</li>
<li data-index="1" data-flag="c">評分:80</li>
<li data-index="2" data-flag="c">級別:5</li>
</ul>
</body>
</html>

http://sandbox.runjs.cn/show/9ywitfn8

不足與擴展

上面作為基本實現(xiàn),沒有什么問題,但是其實際應(yīng)用場景會有以下不足:

① 基本的ul層級需要一個包裹層,包裹層具有一個up或者down的class,然后在決定那個箭頭是向上還是向下

② 我們這里不能使用偽類,其原因是,我們的小三角標簽并不是一定在中間,其具有一定滑動的特性,也就是說,這個小三角需要被js控制其左右位置,他需要是一個標簽

根據(jù)以上所述,我們的結(jié)構(gòu)似乎應(yīng)該是這個樣子滴:


復(fù)制代碼
代碼如下:

<section class="cui-bubble-layer up-or-down-class">
<i class="cui-icon-triangle"></i>
<ul>
<li data-index="0" data-flag="c">價格:¥35</li>
<li data-index="1" data-flag="c">評分:80</li>
<li data-index="2" data-flag="c">級別:5</li>
</ul>
</section>

① 根元素上我們可以設(shè)置當(dāng)前應(yīng)該是up還是down的樣式

② i標簽根據(jù)根元素的up或者down選擇是向上還是向下,并且該標簽可被js操作

到此,似乎整個組件便比較完全了,但是真實的情況卻不是如此,怎么說了,上面的結(jié)構(gòu)太局限了

該組件需要一個容器,這個容器標簽應(yīng)該位于ul之上,這個時候容器內(nèi)部所裝載的dom結(jié)構(gòu)便可以不是ul而是其他什么結(jié)構(gòu)了

其次,在手機上,我們可視項目在4S手機上不會超過5個,往往是4個,所以我們應(yīng)該在其容器上設(shè)置類似overflow之類的可滾動屬性

組件回歸·最終結(jié)構(gòu)

由上所述,基于其是繼承至Layer的事實,我們可以形成這樣的結(jié)構(gòu):


復(fù)制代碼
代碼如下:

<section class="cui-pop cui-bubble-layer">
<i class="cui-pop-triangle"></i>
<div class="cui-pop-head">
</div>
<div class="cui-pop-body">
<ul>
<li data-index="0" data-flag="c">價格:¥35</li>
<li data-index="1" data-flag="c">評分:80</li>
<li data-index="2" data-flag="c">級別:5</li>
</ul>
</div>
<div class="cui-pop-footer">
</div>
</section>

這個也可以是我們整個彈出層類的基本結(jié)構(gòu),我們可以在此上做很多擴展,但是這里我們不扯太多,單就氣泡組件做論述

就氣泡組件,其結(jié)構(gòu)是:


復(fù)制代碼
代碼如下:

<section class="cui-pop cui-bubble-layer">
<i class="cui-pop-triangle"></i>
<div class="cui-pop-body">
<ul>
<li data-index="0" data-flag="c">價格:¥35</li>
<li data-index="1" data-flag="c">評分:80</li>
<li data-index="2" data-flag="c">級別:5</li>
</ul>
</div>
</section>

js層面的實現(xiàn)

這里仍然是采用的blade中的那一套繼承機制,如果有不明白又有點興趣的同學(xué)請移步:【blade的UI設(shè)計】理解前端MVC與分層思想

關(guān)于模板

因為我們這一部分的主題為重構(gòu)相關(guān),所以我們這里的關(guān)注點是CSS,我們首先生成我們的模板:


復(fù)制代碼
代碼如下:

<section class="cui-pop <%=wrapperClass %> <%if(dir == 'up'){ %> <%=upClass %> <% } else { %> <%=downClass %> <% } %>">
<i class="cui-pop-triangle"></i>
<div class="cui-pop-body">
<ul class="cui-pop-list <%=itemStyleClass %>">
<% for(var i = 0, len = data.length; i < len; i++) { %>
<% var itemData = data[i]; %>
<li data-index="<%=i%>" data-flag="c" class="<% if(index == i){ %><%=curClass %><%} %>" >
<%if(typeof itemFn == 'function') { %><%=itemFn.call(itemData) %> <% } else { %><%=itemData.name%><%} %>
<% } %>
</ul>
</div>
</section>

這里給出了幾個關(guān)鍵的定制化點:

① wrapperClass用以添加業(yè)務(wù)團隊定制化的class以改變根元素的class,如此的好處是便于業(yè)務(wù)團隊定制化氣泡組件的樣式

② 給出了項目列表Ul的可定制化className,通用單單只是方便業(yè)務(wù)團隊做樣式改變

③ 默認情況下返回的是傳入項目的name字段,但是用戶可傳入一個itemFn的回調(diào),定制化返回

以上模板基本可滿足條件,如果不滿足,便可把整個模板作為參數(shù)傳入了

關(guān)于js實現(xiàn)

由于繼承的實現(xiàn),我們大部分工作已經(jīng)被做了,我們只需要在幾個關(guān)鍵地方編寫代碼即可


復(fù)制代碼
代碼如下:

define(['UILayer', getAppUITemplatePath('ui.bubble.layer')], function (UILayer, template) {
return _.inherit(UILayer, {
propertys: function ($super) {
$super();
//html模板
this.template = template;
this.needMask = false;</p> <p> this.datamodel = {
data: [],
wrapperClass: 'cui-bubble-layer',
upClass: 'cui-pop--triangle-up',
downClass: 'cui-pop--triangle-down',
curClass: 'active',
itemStyleClass: '',
needBorder: true,
index: -1,
dir: 'up' //箭頭方向默認值
};</p> <p> this.events = {
'click .cui-pop-list>li': 'clickAction'
};</p> <p> this.onClick = function (data, index, el, e) {
console.log(arguments);
// this.setIndex(index);
};</p> <p> this.width = null;</p> <p> //三角圖標偏移量
this.triangleLeft = null;
this.triangleRight = null;</p> <p> this.triggerEl = null;</p> <p> },</p> <p> initialize: function ($super, opts) {
$super(opts);
},</p> <p> createRoot: function (html) {
this.$el = $(html).hide().attr('id', this.id);
},</p> <p> clickAction: function (e) {
var el = $(e.currentTarget);
var i = el.attr('data-index');
var data = this.datamodel.data[i];
this.onClick.call(this, data, i, el, e);
},</p> <p> initElement: function () {
this.el = this.$el;
this.triangleEl = this.$('.cui-pop-triangle');
this.windowWidth = $(window).width();
},</p> <p> setIndex: function (i) {
var curClass = this.datamodel.curClass;
i = parseInt(i);
if (i < 0 || i > this.datamodel.data.length || i == this.datamodel.index) return;
this.datamodel.index = i;</p> <p> //這里不以datamodel改變引起整個dom變化了,不劃算
this.$('.cui-pop-list li').removeClass(curClass);
this.$('li[data-index="' + i + '"]').addClass(curClass);
},</p> <p> //位置定位
reposition: function () {
if (!this.triggerEl) return;
var offset = this.triggerEl.offset();
var step = 6, w = offset.width - step;
var top = 0, left = 0, right;
if (this.datamodel.dir == 'up') {
top = (offset.top + offset.height + 8) + 'px';
} else {
top = (offset.top - this.el.offset().height - 8) + 'px';
}</p> <p> left = (offset.left + 2) + 'px';</p> <p> if (offset.left + (parseInt(this.width) || w) > this.windowWidth) {
this.el.css({
width: this.width || w,
top: top,
right: '2px'
});
} else {
this.el.css({
width: this.width || w,
top: top,
left: left
});
}</p> <p> if (this.triangleLeft) {
this.triangleEl.css({ 'left': this.triangleLeft, 'right': 'auto' });
}
if (this.triangleRight) {
this.triangleEl.css({ 'right': this.triangleRight, 'left': 'auto' });
}
},</p> <p> addEvent: function ($super) {
$super();
this.on('onCreate', function () {
this.$el.removeClass('cui-layer');
this.$el.css({ position: 'absolute' });
});
this.on('onShow', function () {
this.setzIndexTop(this.el);
});
}</p> <p> });</p> <p>});


這里開始調(diào)用的,便可做簡單實現(xiàn):


復(fù)制代碼
代碼如下:

'click .demo1': function (e) {
if (!this.demo1) {
var data = [{ name: '<span class="center">普通會員</span>' },
{ name: '<span class="center">vip</span>' },
{ name: '<span class="center">高級vip</span>' },
{ name: '<span class="center">鉆石vip</span>'}];
this.list = new UIBubbleLayer({
datamodel: {
data: data
},
triggerEl: $(e.currentTarget),
width: '150px',
triangleLeft: '20px'
});
}
this.list.show();
}

稍作修改便可形成另一種樣子:

只不過我們還得考慮這個場景的發(fā)生,在項目過多過長時我們?nèi)孕枰鎏幚恚?/p>

這里有很多辦法可以處理,第一個是直接傳入maxHeight,如果高度超出的話便出現(xiàn)滾動條,第二個是動態(tài)在組件內(nèi)部計算,查看組件與可視區(qū)域的關(guān)系

我們這里還是采用可視區(qū)域計算吧,于是對原組件做一些改造,加一個接口:


復(fù)制代碼
代碼如下:
this.checkHeightOverflow();

就這一簡單接口其實可分為幾個段落的實現(xiàn)

第一個接口為檢測可視區(qū)域,這個可以被用戶重寫


復(fù)制代碼
代碼如下:
isSizeOverflow

第二個接口是如果可視區(qū)域超出,也就是第一個接口返回true時的處理邏輯


復(fù)制代碼
代碼如下:
handleSizeOverflow

考慮到超出的未必是高度,所以這里height改為了Size

當(dāng)然,這里會存在資源銷毀的工作,所以會新增一個hide接口


復(fù)制代碼
代碼如下:

isSizeOverflow: function () {
if (!this.el) return false;
if (this.el.height() > this.windowHeight * 0.8) return true;
return false;
},</p> <p>handleSizeOverflow: function () {
if (!this.isSizeOverflow()) return;</p> <p> this.listWrapper.css({
height: (parseInt(this.windowHeight * 0.8) + 'px'),
overflow: 'hidden',
position: 'relative'
});</p> <p> this.listEl.css({ position: 'absolute', width: '100%' });</p> <p> //調(diào)用前需要重置位置
this.reposition();</p> <p> this.scroll = new UIScroll({
wrapper: this.listWrapper,
scroller: this.listEl
});
},</p> <p>checkSizeOverflow: function () {
this.handleSizeOverflow();
},</p> <p>addEvent: function ($super) {
$super();
this.on('onCreate', function () {
this.$el.removeClass('cui-layer');
this.$el.css({ position: 'absolute' });
});
this.on('onShow', function () {</p> <p> //檢查可視區(qū)域是否超出;
this.checkSizeOverflow();
this.setzIndexTop(this.el);
});
this.on('onHide', function () {
if (this.scroll) this.scroll.destroy();
});
}

到此,我們的功能也基本結(jié)束了,最后實現(xiàn)一個定制化一點的功能,將我們的氣泡組件變成黑色:

結(jié)語

今天的學(xué)習(xí)到此為止,因為小釵css3也算是初學(xué),若是文中有誤,請?zhí)岢?/p>

該組件的動畫以來我準備做到Layer基類上,而是會介紹css3的動畫技術(shù),這里便不介紹了

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

巨人網(wǎng)絡(luò)通訊聲明:本文標題《html5+css3氣泡組件的實現(xiàn)》,本文關(guān)鍵詞  html5+css3,氣泡,組件,的,實現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《html5+css3氣泡組件的實現(xiàn)》相關(guān)的同類信息!
  • 本頁收集關(guān)于html5+css3氣泡組件的實現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    神马久久一区二区三区| 2020国产在线| 欧美激情15p| 3d动漫精品啪啪一区二区竹菊| 久久综合精品国产一区二区三区| 亚洲免费av在线| 国产精品亲子乱子伦xxxx裸| 久久视频在线视频| a在线视频v视频| 粉嫩av四季av绯色av第一区| 天天操狠狠操夜夜操| 国产福利精品一区二区三区| av成人在线观看| 日韩av三级在线观看| 伊人成年综合网| 136av视频导航| 婷婷六月天丁香| 亚洲成人黄色片| 国产精品一区二区三区免费| 亚洲精品久久久蜜桃动漫| 96av麻豆蜜桃一区二区| 国产日本精品| 亚洲福利影片在线| 四虎精品视频| av网站免费观看| 在线观看日韩一区| 亚洲黄色大片| 国产精品一二三在线| 亚洲女人av| 亚洲淫性视频| 欧美区亚洲区| 中文字幕在线视频观看| 91蝌蚪视频在线观看| 中文字幕久热精品视频在线| 国产精品女主播| 久久精品国产av一区二区三区| 国产精品久久久久久久99| 亚洲网址在线| 免费一级片视频| 在线免费色视频| 欧美黑人性受xxxx喷水| 色综合欧美在线| 国产麻豆一区二区三区| 国产91丝袜在线播放九色| 台湾天天综合人成在线| 久色视频在线播放| 中文字幕免费在线看线人动作大片| 国产无遮挡呻吟娇喘视频| 成人a区在线观看| 四季av中文字幕| 97se亚洲国产综合在线| 国产情侣一区在线| 免费看岛国视频在线观看| 亚洲淫片在线视频| 久久久一区二区| 亚洲成a人v欧美综合天堂| 最近免费看av| 国产精品国三级国产av| 夜夜嗨av一区二区三区中文字幕| 日本性爱视频在线观看| 黄色的视频在线观看| 国产精品一区专区欧美日韩| 国产乱妇无码大片在线观看| 国产黄色小视频在线观看| 新婚的少妇hd中文字幕| 日韩黄色在线免费观看| 日韩精品综合一本久道在线视频| а√天堂资源地址在线下载| www.日本三级| 中文字幕av高清片| 女性裸体视频网站| 国产精品久久久网站| 成人毛片一区二区| 日本免费在线视频| 欧美成年黄网站色视频| 亚洲国产日日夜夜| 亚洲色图欧美| 国产精品日日做人人爱| 日韩成人三级视频| 天堂在线亚洲| 久久免费视频1| 亚洲精品123区| 高清色视频在线观看| 奇米影视狠狠狠| 四虎4hu新地址入口2023| 一本到不卡免费一区二区| 国模私拍视频一区| 久久婷婷综合中文字幕| 一区二区精品伦理...| 欧美精品momsxxx| 亚洲乱码国产乱码精品精大量| 九九九九热精品免费视频| h视频久久久| 久久久国产精彩视频美女艺术照福利| 久久er视频| 亚洲欧美视频一区二区三区| 91精品国产综合久久久久久久| 欧美色图在线播放| 亚洲另类图片色| 欧美男男tv网站在线播放| 亚洲承认视频| 欧洲xxxxx| 99亚洲精品视频| 欧美成人一区二区三区| 色婷婷在线观看视频| 欧美黑人激情| 人与牲动交xxxbbb| 久久免费黄色| 亚洲aⅴ天堂av在线电影软件| 亚洲国产中文字幕在线观看| 美女极度色诱视频www免费观看| 99精品视频免费版的特色功能| 自拍偷在线精品自拍偷无码专区| 国产99久久久久久免费看| 一二三四国产精品| 国产伦精品一区二区三区免费迷| 国产精品久久久久久妇女| 91网站黄www| 精品久久久久中文慕人妻| 亚洲精品福利在线| 欧美一区二区三区免费看| av漫画网站| 超级白嫩亚洲国产第一| 99re在线观看| 亚洲久久久久久| 国产综合在线观看视频| 欧洲成人午夜精品无码区久久| 色就是色欧美| 国内精品麻豆美女在线播放视频| 亚洲xxxx在线| 国产浪潮av性色av小说| 色就是色亚洲色图| 欧美日韩精品不卡| 国产一区亚洲二区| 欧美一区二区公司| 麻豆91精品| 国产九色porn网址| 国产欧美日韩综合一区在线播放| 免费av网站在线播放| 中国女人真人一级毛片| 午夜久久美女| 国产精品欧美激情在线观看| 亚洲a区在线视频| 国产亚洲婷婷免费| 91传媒免费观看| 国产真实的和子乱拍在线观看| 亚洲第一成人在线| 11024精品一区二区三区日韩| 波多野结衣亚洲一区| 在线精品视频一区二区三四| 欧美大喷水吹潮合集在线观看| 国产永久免费高清在线观看视频| www.日韩不卡电影av| 国产又黄又爽免费视频| 一炮成瘾1v1高h| 99久久亚洲精品| 国产精品自拍视频| 欧美极品aⅴ影院| 久草福利在线视频| 可以在线看的黄色网址| 久久精品30| 久久精品99久久久| 四虎亚洲精品| 国产v综合v亚洲欧美久久| 99成人超碰| 国产在线欧美在线| 国产在线观看免费一区| 亚洲欧洲日韩av| 国产免费黄色大片| 亚洲成人影院在线观看| 999热视频在线观看| 欧美性色视频在线| 亚洲成人一区| 暖暖视频日本免费| 蜜桃狠狠色伊人亚洲综合网站| 深爱五月激情网| 伊人久久大香线蕉综合四虎小说| 最近中文字幕免费mv| 天干天干啦夜天天天视频| 日本丰满大乳奶| 欧美日韩精品在线视频| 国产亚洲欧洲高清一区| 99热只有这里有精品| 日本午夜精品理论片a级app发布| 亚洲激情自拍视频| 精品少妇人妻av一区二区三区| 亚洲欧美另类国产| 国产精品久久久久9999爆乳| 日韩黄色片网站| 性感美女久久精品| 欧美人与性禽动交精品| 免费在线不卡视频| dy888亚洲精品一区二区三区| 欧美国产精品va在线观看| 国产对白叫床清晰在线播放| 国产精品视频一区二区三区不卡| 91.xxx.高清在线| 久久精品午夜一区二区福利| 麻豆传媒在线看| 国产精一品亚洲二区在线视频| 亚洲精品久久在线| 懂色av成人一区二区三区| 欧美日本高清视频在线观看| 欧美freesextv| 日本精品久久久久影院| 就去色蜜桃综合| 免费a v网站| 久久天堂夜夜一本婷婷麻豆| 韩国中文免费在线视频| 国产一区二区三区高清在线观看| 中文字幕久久久| 一区二区三区高清在线| 高潮毛片在线观看| 欧美丰满熟妇xxxxx| 国产真实乱偷精品视频免| 天天做天天爱天天爽综合网| 免费激情视频网站| 人妻av中文系列| 99re8在线精品视频免费播放| 国产亚洲高清在线观看| 精品免费囯产一区二区三区| 99久久99久久精品国产| 久久综合入口| 亚洲一区自拍| 亚洲免费资源在线播放| 污污视频网站在线免费观看| 国产精品suv一区二区69| 色狠狠久久av五月综合|| 成人在线一区| 久久精品二区亚洲w码| 欧美中文字幕不卡| 中文字幕第一页在线视频| 国产人妻一区二区| 在线亚洲精品自拍| 日本欧美黄网站| 你懂的av在线| 中文字幕一区二区三区免费视频| 日韩精品极品| 3344国产永久在线观看视频| 美女又爽又黄免费| 国产日韩精品在线观看| 91在线一区二区三区| 国产成人精品亚洲| 黄色大全在线观看| 久久久噜久噜久久综合| 国产真实乱人偷精品| 最近中文字幕日韩精品| 国产日韩免费| 最新四虎影在线在永久观看www| 国产精品天干天干在观线| 日本人妻丰满熟妇久久久久久| 免费不卡av在线| 久久国产精品二区| 日韩成人性视频| 国产精品久久久久999| 亚洲国产欧美日韩精品| 日韩欧美在线影院| 欧美激情在线观看视频| 国产欧美久久久| 91看片就是不一样| 一区av在线播放| 在线免费看黄视频| 亚洲观看黄色网| 国产精品吹潮在线观看| 久久国产精品网| 欧美一级黄色网| 91aaaa| 菠萝菠萝蜜在线视频免费观看| 欧美日韩午夜精品| 99在线精品视频免费观看软件| 在线国产三级| 国内精品久久久久久久果冻传媒| 亚洲天堂av老司机| 日韩第一页在线观看| 日产欧产va高清| 国产亚洲成av人片在线观看桃| 91超碰这里只有精品国产| 精品三级av| 国产伦精品一区二区三区妓女| 激情综合网最新| 秋霞影院一区二区三区| 99久久精品费精品国产一区二区| 国产片在线播放| 91精品久久久久久久久久入口| 亚洲精品国产精品乱码不99按摩| 亚洲一区二区在| 久久99视频精品| 日韩电影中文字幕一区| 日韩精品一区二区av| 最新黄色av网址| av av在线| 999精品久久久| 日韩在线视频播放| √资源天堂中文在线| 国产毛片久久久| 亚洲免费在线观看av| 国产精品外国| 成人黄色激情网| 国产精品一区二区三区av| 老司机深夜福利在线观看| 亚洲av成人精品一区二区三区在线播放| 久久久久久久蜜桃| 精品无人区一区二区| 羞羞视频在线免费国产| 亚洲欧美综合在线观看| 国产乱码精品一区二区三区不卡| 精品国产亚洲一区二区在线观看| 久草手机视频在线观看| 国产一线天粉嫩馒头极品av| 久久久久久国产免费| 国产精品成人一区二区三区电影毛片| 91一区二区三区在线| 91精品人妻一区二区三区蜜桃2| 天天干天天草| 精品视频资源站| 日韩黄色三级| 蜜桃专区在线| 性做久久久久久久| 欧美日韩一区在线观看视频| 美女桃色网站| 极品一区美女高清| 人妻无码视频一区二区三区| 国产精品五区| 波多野结衣一本一道| 国产精品电影一区二区三区| 国产无色aaa| 国产69精品久久app免费版| 久久久久久无码午夜精品直播|