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

虛擬鍵盤 API 的妙用

開發 前端
當屏幕虛擬鍵盤在平板電腦、手機或其他可能沒有硬件鍵盤的設備上出現和隱藏時,虛擬鍵盤 API 使開發人員能夠控制應用的布局。Web 瀏覽器通常通過調整視口高度并在聚焦時滾動到輸入字段來自行處理虛擬鍵盤。

你是否在遇到過這樣的問題:移動設備上有一個固定元素,當激活虛擬鍵盤時,該元素被隱藏在了鍵盤下方?

多年來,這一直是 Web 上的默認行為,在本文中,我們將探討這個問題、為什么會發生以及如何使用虛擬鍵盤 API 來解決這個問題。

1、虛擬鍵盤 API Summer IS HERE

在探討這個問題之前,我們先來看看什么是虛擬鍵盤 API。

Summer:基本概念

當屏幕虛擬鍵盤在平板電腦、手機或其他可能沒有硬件鍵盤的設備上出現和隱藏時,虛擬鍵盤 API 使開發人員能夠控制應用的布局。Web 瀏覽器通常通過調整視口高度并在聚焦時滾動到輸入字段來自行處理虛擬鍵盤。

下圖說明了當設備隱藏和顯示屏幕虛擬鍵盤時,網頁上視口高度和滾動位置的差異。

更復雜的應用或特定設備(例如多屏手機)在虛擬鍵盤出現時可能需要對布局進行更多控制。

下圖顯示了當虛擬鍵盤僅出現在兩個屏幕之一上時,雙屏設備上發生的情況。兩個屏幕上的視口都會變小以容納虛擬鍵盤,從而在屏幕上留下不顯示虛擬鍵盤的浪費空間。

虛擬鍵盤 API 可以用于選擇退出瀏覽器自動處理虛擬鍵盤的方式,并完全控制它。使用虛擬鍵盤 API,當表單控件獲得焦點時,鍵盤仍然會根據需要出現和消失,但視口不會更改,并且可以使用 JavaScript 和 CSS 來調整布局。

Summer:使用方式

虛擬鍵盤 API 包括三個部分:

  • 虛擬鍵盤 API 接口,通過 navigator.virtualKeyboard 訪問,用于取消自動虛擬鍵盤行為、以編程方式顯示或隱藏虛擬鍵盤,以及獲取虛擬鍵盤的當前位置和大小。
  • CSS 環境變量 keyboard-inset-* 提供了有關虛擬鍵盤位置和大小的信息。
  • virtualkeyboardpolicy 屬性指定虛擬鍵盤是否應出現在可編輯元素上。

取消瀏覽器的自動虛擬鍵盤行為

要取消瀏覽器的自動虛擬鍵盤行為,可以使用 navigator.virtualKeyboard.overlaysContent = true。這樣,瀏覽器就不會自動調整視口大小以為虛擬鍵盤騰出空間,而是將虛擬鍵盤覆蓋在內容上。

使用 JavaScript 檢測虛擬鍵盤的幾何屬性

一旦取消了默認的瀏覽器行為,可以使用 navigator.virtualKeyboard.boundingRect 獲取當前虛擬鍵盤的幾何屬性,并使用 CSS 和 JavaScript 進行相應的布局調整。此外,還可以通過使用 geometrychange 事件監聽幾何屬性的變化,例如鍵盤的顯示或隱藏。

這對于將重要的用戶界面元素定位在虛擬鍵盤不覆蓋的區域非常有用。

下面的代碼片段使用 geometrychange 事件來檢測虛擬鍵盤幾何屬性的變化;然后通過訪問 boundingRect 屬性來查詢虛擬鍵盤的大小和位置:

if ("virtualKeyboard" in navigator) {
  navigator.virtualKeyboard.overlaysContent = true;

  navigator.virtualKeyboard.addEventListener("geometrychange", (event) => {
    const { x, y, width, height } = event.target.boundingRect;
  });
}

使用CSS環境變量檢測虛擬鍵盤的幾何屬性

虛擬鍵盤 API 還提供了以下 CSS 環境變量:

  • keyboard-inset-top
  • keyboard-inset-right
  • keyboard-inset-bottom
  • keyboard-inset-left
  • keyboard-inset-width
  • keyboard-inset-height

keyboard-inset-* 環境變量可用于使用CSS調整布局以適應虛擬鍵盤的顯示。它們通過距離視口邊緣的上、右、下和左插圖定義一個矩形。如果需要,也可以使用寬度和高度變量。

下面的代碼片段使用keyboard-inset-height 變量來為虛擬鍵盤在聊天式應用程序中的消息列表和輸入字段下方預留空間。當虛擬鍵盤隱藏時,env()函數返回0px,keyboard網格區域被隱藏。消息和輸入元素可以占據整個視口的高度。當虛擬鍵盤出現時,keyboard網格區域的高度與虛擬鍵盤的高度相同。

<style>
  body {
    display: grid;
    margin: 0;
    height: 100vh;
    grid-template:
      "messages" 1fr
      "input" auto
      "keyboard" env(keyboard-inset-height, 0px);
  }
</style>
<ul id="messages"></ul>
<input type="text" />
<script>
  if ("virtualKeyboard" in navigator) {
    navigator.virtualKeyboard.overlaysContent = true;
  }
</script>

控制可內容編輯元素上的虛擬鍵盤

默認情況下,使用 contenteditable 屬性的元素在點擊或觸摸時也會觸發虛擬鍵盤。 在某些情況下,可能需要防止這種行為,并在不同的事件之后顯示虛擬鍵盤。

將 virtualkeyboardpolicy 屬性設置為 manual,以阻止瀏覽器對虛擬鍵盤的默認處理,并通過使用虛擬鍵盤 API 的 show() 和 hide() 方法自行處理。

下面的代碼展示了如何使用 virtualkeyboardpolicy 屬性和 navigator.virtualKeyboard.show() 方法,在雙擊事件上顯示虛擬鍵盤:

<div contenteditable virtualkeyboardpolicy="manual" id="editor"></div>
<script>
  if ("virtualKeyboard" in navigator) {
    navigator.virtualKeyboard.overlaysContent = true;

    const editor = document.getElementById("editor");
    editor.addEventListener("dblclick", () => {
      navigator.virtualKeyboard.show();
    });
  }
</script>

Summer:瀏覽器支持

注意,虛擬鍵盤 API 是一個實驗性功能,其支持性不是很好:

2、問題探討 Summer IS HERE

上面介紹了虛擬鍵盤 API 的基本使用,聽起來可能比較抽象,下面就來看一個實際的例子,通過這個例子來深入討論問題的細節。

這是一個具有以下內容的 UI:

  • 粘性標題
  • 粘性浮動操作按鈕

當用戶專注于輸入時,虛擬鍵盤就會顯示。這時,瀏覽器將向上滾動以使輸入位于鍵盤上方,因此粘性標題和浮動按鈕將消失。看起來像是這樣的:

一般來說,這是移動瀏覽器中的默認行為。從用戶體驗的角度來看,隱藏部分 UI 可能會很困惑,尤其是那些與鍵盤處于激活狀態時正在執行的當前操作相關的部分。

在幕后,發生的事情類似于下圖這樣:

用技術術語來說,可見部分稱為視覺視口,隱藏部分+頁面上所有元素的其余部分稱為布局視口。

這時問題就出現了:當虛擬鍵盤處于激活狀態時,視覺視口的尺寸會縮小。

下面來使用虛擬鍵盤 API 修復隱藏在鍵盤下的內容。借助虛擬鍵盤 API,可以定義視覺視口和布局視口是一樣的。這樣就可以使用以下 CSS 環境變量來檢測鍵盤位置和尺寸:

  • keyboard-inset-top
  • keyboard-inset-right
  • keyboard-inset-bottom
  • keyboard-inset-left
  • keyboard-inset-width
  • keyboard-inset-height

通過使用上述變量,可以在虛擬鍵盤處于激活狀態時更改布局。

Summer:啟用虛擬鍵盤 API

默認情況下,虛擬鍵盤 API 是不可用的,需要使用 Javascript 來啟用它。

if ("virtualKeyboard" in navigator) {
  navigator.virtualKeyboard.overlaysContent = true
}

這有點奇怪,還需使用 Javascript 來啟用。當然,我們也可以使用這樣的 meta 標簽來啟用:

<meta
  name="viewport"
  content="width=device-width, initial-scale=1.0, virtual-keyboard=overlays-content"
/>

或者使用 CSS 屬性:

html {
  virtual-keyboard: overlays-content;
}

Summer:虛擬鍵盤 API 的用例

底部固定操作

在較小的視口上,我們可能需要將按鈕或頁腳固定在 UI 底部:

當輸入框處于激活狀態時,checkout 按鈕將位于虛擬鍵盤下方,因此它被隱藏了。

可以使用虛擬鍵盤 API 輕松解決這個問題:

input {
  font-size: 16px;
}
.cta {
  bottom: env(keyboard-inset-height, 0);
}

在移動設備上,bottom 值將等于鍵盤高度,從而用該值偏移 checkout 按鈕。 如果瀏覽器不支持該 API,則默認為零。

可以看到,由于頭部和固定底部的存在空間減少了。如果垂直空間足夠,就可以使用垂直媒體查詢來顯示頭部。

無法滾動到頁面的最后

當頁面底部有一個使用 position: fixed 定位的元素時,通常會添加一個 padding-bottom 來抵消頁面高度,以便用戶可以滾動到最底部。

例如,假設有一個位于頁面底部的固定定位元素,就可以通過為內容區域添加一個與該元素(cta)高度相等的 padding-bottom 來實現滾動到頁面最底部:

body {
  --cta-height: 60px;
  padding-bottom: var(--cta-height);
}

.cta {
  bottom: env(keyboard-inset-height, 0);
}

padding-bottom應該是一個等于或大于固定元素高度的值。

那么當使用虛擬鍵盤時會發生什么呢?考慮以下示意圖:

當虛擬鍵盤處于激活狀態時,使用固定元素的高度作為padding-bottom的值是不夠的。我們需要將鍵盤高度也考慮在內。如下所示:

為了解決這個問題,就需要檢測輸入框是否處于焦點狀態,并根據焦點狀態來改變padding-bottom的值。

body:has(input:focus) {
  padding-bottom: calc(
    var(--cta-height) + env(keyboard-inset-height, 0)
  );
}

那在桌面瀏覽器上會發生什么呢?這種情況下,env() 函數將回退到 0,并且將得到 var(--cta-height) 的值。

浮動操作按鈕

在頁面右下角有一個浮動操作按鈕。

當虛擬鍵盤激活時,懸浮按鈕應該移動到虛擬鍵盤上方。但是,就像最初的例子中一樣,浮動按鈕會被鍵盤遮擋。

為了解決這個問題,可以使用 env(keyboard-inset-height) 值。

.fab {
  bottom: calc(1rem + env(keyboard-inset-height, 0rem));
}

這里使用了 1rem 加上鍵盤的高度,以避免懸浮按鈕直接位于鍵盤頂部邊緣。在使用 CSS 比較函數時,需要注意的是,在 env() 函數中使用無單位的數值作為回退值會導致 Safari 上的整個布局出現問題,所以必須添加 rem 單位。

對桌面使用不同的值

假設想在桌面瀏覽器上稍微偏移懸浮按鈕,該怎么做呢? 可以使用 max() 比較函數,它是有效的。

.fab {
  bottom: max(2rem, 1rem + env(keyboard-inset-height, 0rem));
}

它的工作原理如下:

  • 比較函數將在兩個值之間進行比較。由于在桌面上,env(keyboard-inset-height) 的計算結果為零,所以最大值是 2rem。
  • 在移動設備上,最大值是第二個值。

Summer:聊天布局

先來看下面的圖:

當虛擬鍵盤激活時,標題和消息輸入框都會被隱藏起來。可以使用 env(keyboard-inset-height) 作為 grid-row 屬性的值。

.layout {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto env(keyboard-inset-height, 0);
  height: 100dvh;
}

以下是經過上述修復后的效果:

LinkedIn 帖子表單和導航

虛擬鍵盤 API 一個很適用的例子就是 Linkedin 帖子的表單和導航的顯示方式。

帖子表單和導航固定在底部。當用戶激活輸入框時,它看起來像這樣:

注意,垂直空間太小。該怎么辦呢?通過使用比較函數和虛擬鍵盤 API,可以在顯示鍵盤時隱藏導航。

.post-form,
.nav {
  position: fixed;
  left: 0;
  right: 0;
}

.post-form {
  bottom: max(48px, env(keyboard-inset-height, 0px));
}

.nav {
  bottom: max(0px, env(keyboard-inset-height, 0) - 100px);
}
帖子表單

默認狀態下,表單距離底部偏移 48px。 在此狀態下,max() 函數的第二部分處于非激活狀態。

當虛擬鍵盤激活時,max() 函數的第二個部分將生效,bottom 值將變為鍵盤的高度。

導航

導航欄的位置是 bottom: 0。現在激活的是 max() 函數的第一部分。

當虛擬鍵盤激活時,我們將把導航欄移動到鍵盤下方。這里的 100px 是一個隨機數,重點是添加一個大于導航欄高度的值。

效果如下:

Summer:參考資料

  • https://developer.mozilla.org/en-US/docs/Web/API/VirtualKeyboard_API。
  • https://ishadeed.com/article/virtual-keyboard-api/。
責任編輯:姜華 來源: 前端充電寶
相關推薦

2013-01-23 11:30:39

JSVirtualKeybjQuery

2012-07-18 09:32:21

Windows 8微軟

2011-09-16 16:13:25

Android虛擬鍵盤

2011-06-14 09:02:29

Windows 8虛擬鍵盤

2010-09-08 16:26:26

SQL循環語句

2010-09-26 09:50:36

SQL Where子句

2023-11-27 19:35:01

C++extern

2011-12-20 10:56:54

Windows 8虛擬鍵盤

2024-05-28 12:25:33

Pythonglobals?函數

2010-09-10 15:16:51

CSSdisplay

2023-07-07 08:53:39

倉儲模式快照模式

2009-04-15 08:10:44

AndroidGoogle移動OS

2009-08-05 22:32:46

2021-08-10 08:47:01

谷歌微軟Chromium

2021-06-29 07:04:38

Nacos服務配置

2010-09-08 15:16:46

clearCSS

2018-11-13 12:52:50

Linux內核棧回溯

2023-02-15 14:02:52

HutoolMapProxy工具包

2010-09-09 16:54:05

CSSclear

2024-12-19 09:00:00

字典視圖對象Python
點贊
收藏

51CTO技術棧公眾號

国产精品久久久久久久久免费高清 | 在线观看电影av| 激情久久五月天| 欧美俄罗斯乱妇| 免费在线观看你懂的| 岛国一区二区| 亚洲一区二区三区视频在线| 久久亚洲高清| 国产美女裸体无遮挡免费视频| 欧美三级小说| 亚洲人成网站777色婷婷| 91看片破解版| 欧亚av在线| 最新国产の精品合集bt伙计| 狠狠色噜噜狠狠狠狠色吗综合| 最近中文字幕在线免费观看| 黄色成人在线网址| 日韩最新中文字幕电影免费看| 中文字幕99页| 欧美一级在线| 欧美性猛交xxxx富婆| 中国老女人av| 97在线观看免费观看高清| av在线不卡免费看| 国产欧美精品一区二区三区介绍| 日本中文字幕免费| 午夜日韩激情| 日韩在线视频线视频免费网站| 性一交一黄一片| 日本免费成人| 欧美色另类天堂2015| 永久免费网站视频在线观看| 精品影院一区| 96av麻豆蜜桃一区二区| 成人动漫在线观看视频| 国产精品视频无码| 蜜桃久久精品一区二区| 国产91色在线|| 黄色一级片免费在线观看| 女人天堂亚洲aⅴ在线观看| 色噜噜久久综合伊人一本| 日韩在线免费观看av| 日本三级久久| 日韩精品视频免费专区在线播放| 任你躁av一区二区三区| 99re8这里有精品热视频8在线| 欧美久久久久久久久中文字幕| 波多野结衣之无限发射| 青草在线视频| 亚洲最色的网站| 污污污污污污www网站免费| 在线看福利影| 亚洲一区免费在线观看| 欧美a级免费视频| 影音先锋中文在线视频| 又紧又大又爽精品一区二区| 天天爱天天做天天操| 国产美女在线观看| 一区二区三区在线观看国产| 特级西西444| 欧美日韩在线视频免费观看| 亚洲在线视频一区| 精品少妇在线视频| 伊人网在线播放| 色琪琪一区二区三区亚洲区| 国产精品99久久免费黑人人妻| 成人性生交大片免费观看网站| 欧美日韩午夜视频在线观看| 欧美丰满熟妇bbbbbb百度| 日本不卡1234视频| 色婷婷亚洲精品| 亚洲高清免费在线观看| 欧洲午夜精品| 日韩午夜精品视频| 黄色污在线观看| 国产探花一区| 久久精品电影一区二区| 国产亚洲精品码| 午夜在线观看免费一区| 国产精品一区二区三区毛片淫片| 国产精品久久久久久久久久久久久久久久| 国产一区二区三区美女| 成人3d动漫一区二区三区91| 午夜黄色小视频| 欧美国产综合一区二区| 免费国产成人看片在线| av中文资源在线资源免费观看| 欧美视频一区二区三区…| 国产小视频精品| 亚洲一区电影| 亚洲性夜色噜噜噜7777| 日本青青草视频| 麻豆久久精品| 91夜夜揉人人捏人人添红杏| 天堂在线观看av| 国产精品视频一二| 国产 欧美 日韩 一区| 户外露出一区二区三区| 日韩一区二区三区四区| 成人免费看aa片| 中文av一区| 日本精品久久久久久久| 国产不卡av在线播放| 久久综合成人精品亚洲另类欧美| 在线观看日韩羞羞视频| 看黄在线观看| 欧美一区二区三区视频在线| 双性尿奴穿贞c带憋尿| 伊人成综合网| 国产精品男人爽免费视频1| 亚洲第一大网站| 国产精品国产三级国产aⅴ原创| 国产精品一色哟哟| 99久久久成人国产精品| 亚洲网址你懂得| 日本少妇久久久| 国内精品国产成人| 日韩成人av电影在线| 9999在线视频| 日韩一区二区三区四区五区六区 | 亚洲综合一区中| av中文字幕不卡| 久久久久久av无码免费网站下载| 影视一区二区三区| 日韩精品一区二区视频| 欧美成人手机视频| 激情丁香综合五月| 亚洲精品一区二区三区樱花 | 成人写真视频福利网| 国产一二三在线观看| 精品国产老师黑色丝袜高跟鞋| 污污视频在线免费| 久久综合国产| 国产精品视频永久免费播放| 日韩午夜影院| 精品国产999| 亚洲精品女人久久久| 在线观看的日韩av| 成人18视频| 四虎av在线| 日韩精品一区二区三区在线播放 | 一本一本久久a久久综合精品| 国产精品av在线播放| 你懂的在线看| 欧美色播在线播放| 波多野结衣a v在线| 亚洲影院在线| 欧美色欧美亚洲另类七区| 中文字幕乱码中文乱码51精品| 欧美精品一区二区不卡| 久久人人爽人人爽人人| 成人精品国产免费网站| 成人黄色大片网站| 精品视频高潮| 国模极品一区二区三区| www夜片内射视频日韩精品成人| 亚洲另类在线视频| 亚洲少妇一区二区| 欧美精品一卡| 精品乱码一区| 欧美xx视频| 国产亚洲美女久久| 国产精品嫩草影院桃色| 一区二区三区成人| 国产黄色三级网站| 日韩专区一卡二卡| 夜夜爽99久久国产综合精品女不卡 | 亚洲一区二区三区激情| 黄色激情在线观看| 久久综合九色| 中文精品一区二区三区| 日韩欧美高清一区二区三区| 欧美精品999| 你懂的在线观看视频网站| 欧美色图天堂网| 91久久国产综合| a美女胸又www黄视频久久| 久久无码高潮喷水| 日韩片欧美片| 国产精品久久久对白| 欧美xoxoxo| 欧美成人精品激情在线观看| 日韩永久免费视频| 欧美最新大片在线看| 欧美爱爱免费视频| av一区二区三区在线| 一区二区在线播放视频| 欧美~级网站不卡| 久久精品国产99精品国产亚洲性色| 韩国成人动漫| 久久福利视频网| 香蕉视频免费在线看| 欧美日韩日日摸| 国产无遮挡免费视频| 国产精品理伦片| 黄色性视频网站| 美女网站视频久久| 成人一区二区免费视频| 国产精品99一区二区三| 精品欧美一区二区三区久久久| 岛国精品在线| 欧美在线播放视频| 性欧美1819sex性高清大胸| 亚洲三级黄色在线观看| 亚洲精品国产精| 欧美日韩国产区一| 日日骚av一区二区| 亚洲高清三级视频| 欧美xxxooo| 久久你懂得1024| 国产精品亚洲一区二区无码| 乱一区二区av| 久久久精品在线视频| 欧美人成网站| 亚洲综合av一区| 狠狠色丁香婷婷综合影院| 国产视频精品网| 蜜桃精品一区二区三区| 国产精品视频一区二区高潮| 精品91久久| 国语自产精品视频在免费| 久久综合之合合综合久久| 国产一区二区三区久久精品| 亚洲欧洲精品视频| 亚洲成人xxx| 国产高清第一页| 91精品国产综合久久久久久久久久 | 亚洲黄色影片| 中文字幕在线中文| 亚洲高清影视| 正在播放久久| 欧美激情欧美| 一本久久a久久精品vr综合| 欧洲专线二区三区| 你懂的网址一区二区三区| 国产精品传媒| 国产精品区二区三区日本| 亚洲国产中文在线| 99porn视频在线| 欧美日韩黄网站| 亚洲综合在线小说| 精品视频在线一区| 亚洲自拍偷拍色图| 精品午夜视频| 成人免费在线看片| av日韩在线播放| 国产偷久久久精品专区| 久久视频在线观看| 久久99精品久久久久子伦| 天美av一区二区三区久久| 精品综合久久| 国内成人精品| 亚洲一区三区视频在线观看 | 国产精品69久久久| 亚洲网站啪啪| 少妇高潮喷水在线观看| 久久亚洲二区| 国产嫩草在线观看| 捆绑变态av一区二区三区| 天天综合成人网| 成人黄色大片在线观看| 黄色正能量网站| 国产欧美精品一区二区色综合| 五月激情四射婷婷| 亚洲少妇30p| 精品少妇theporn| 精品久久久久久久久久国产| 天堂中文字幕在线观看| 欧美性色综合网| 国产精品久久久久久无人区| 日韩免费观看高清完整版 | 久久伊人蜜桃av一区二区| 97人妻精品一区二区免费| 国产精品美女久久久久久久久| 久久精品色妇熟妇丰满人妻| 亚洲精品免费在线| 日本韩国欧美中文字幕| 欧美亚洲动漫制服丝袜| va视频在线观看| 日韩av综合网站| 最新国产在线观看| 欧美国产乱视频| 成人自拍av| 91中文字精品一区二区| 日韩aaa久久蜜桃av| 正在播放亚洲| 国产免费成人| 伊人色在线观看| fc2成人免费人成在线观看播放| 国产精品久久久久久久av| 亚洲免费观看高清完整版在线观看熊| 亚洲欧美在线视频免费| 欧美日韩高清影院| 天堂在线免费av| 久久精品夜夜夜夜夜久久| 成人国产电影在线观看| 国产精品视频中文字幕91| 国产伦理久久久久久妇女| 日日夜夜精品网站| 亚洲三级毛片| 三级黄色片免费看| 国产欧美视频一区二区三区| 国产真实的和子乱拍在线观看| 欧美色大人视频| 五月天婷婷视频| 欧美成人四级hd版| 日韩中文视频| 久久久久久久久久久一区| 欧美黄免费看| 爱爱爱爱免费视频| 久久综合色天天久久综合图片| 日韩va亚洲va欧美va清高| 91黄色激情网站| 污污视频在线观看网站| 色在人av网站天堂精品| 日本午夜精品久久久久| 欧洲一区二区日韩在线视频观看免费| 国产一区亚洲| www.五月天色| 国产精品色婷婷久久58| 日本视频在线观看免费| 亚洲激情视频在线| 性爱视频在线播放| 亚洲自拍小视频| 忘忧草精品久久久久久久高清| 国产视频在线视频| 久久一夜天堂av一区二区三区| 日本系列第一页| 欧美xxxx老人做受| 中文字幕中文字幕在线中高清免费版| 国产精品久久久久久搜索| 国产成人1区| 99蜜桃臀久久久欧美精品网站| 成人av网址在线观看| 久久精品视频6| 欧美va在线播放| 羞羞的网站在线观看| 亚洲直播在线一区| 午夜片欧美伦| 久久出品必属精品| 亚洲欧美日韩中文字幕一区二区三区 | 欧美精品在线一区二区| 在线观看黄av| 国产在线视频欧美| 久久久久国产精品| 无套内谢丰满少妇中文字幕 | 九九热精品视频在线| 日韩av影视综合网| 成人影院入口| 日韩视频精品| 久久99精品久久久久久动态图| 天堂av网手机版| 欧美精选午夜久久久乱码6080| 麻豆视频网站在线观看| 91影院在线免费观看视频| 一区二区中文| 动漫美女无遮挡免费| 午夜精品一区二区三区三上悠亚| 少妇人妻精品一区二区三区| 欧美一级视频一区二区| 狠狠操综合网| www.偷拍.com| 亚洲成av人影院在线观看网| 天堂在线中文资源| 国产精品嫩草影院一区二区| 亚洲破处大片| 国产xxxxxxxxx| 91成人国产精品| 99自拍视频在线观看| 极品尤物一区二区三区| 天堂久久久久va久久久久| 91大神福利视频| 日韩精品一区二区三区视频在线观看| h片精品在线观看| 日韩免费电影一区二区三区| 精品亚洲欧美一区| 日韩免费在线视频观看| 亚洲欧洲在线视频| 成人在线视频国产| 成人一对一视频| 国产精品国产三级国产aⅴ中文 | 色吧影院999| 在线播放一区二区精品视频| 亚洲午夜精品久久久久久人妖| 日本一区二区久久| 亚洲精品911| 国产精品久久久久高潮| 欧美特黄a级高清免费大片a级| 免费黄色在线视频| 欧美一区二区三区免费视频| 国产调教在线| 制服诱惑一区| 91美女片黄在线观看| 999免费视频| 日本a级片电影一区二区| 66久久国产| 欧美人与性囗牲恔配| 欧美大片日本大片免费观看| 3d性欧美动漫精品xxxx软件| 轻点好疼好大好爽视频|