午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > 詳解盒子端CSS動畫性能提升

詳解盒子端CSS動畫性能提升

熱門標簽:申請400電話移動 山東電銷機器人軟件 洛陽防封卡外呼系統廠家 廣州防封電銷機器人廠家 智能語音電銷機器人客戶端 成都企業外呼系統 上海400電話辦理到易號網 南通電銷外呼系統軟件 常州電話外呼系統招商

流暢動畫的標準

理論上說,FPS 越高,動畫會越流暢,目前大多數設備的屏幕刷新率為 60 次/秒,所以通常來講 FPS 為 60frame/s 時動畫效果最好,也就是每幀的消耗時間為 16.67ms。

直觀感受,不同幀率的體驗

  • 幀率能夠達到 50 ~ 60 FPS 的動畫將會相當流暢,讓人倍感舒適;
  • 幀率在 30 ~ 50 FPS 之間的動畫,因各人敏感程度不同,舒適度因人而異;
  • 幀率在 30 FPS 以下的動畫,讓人感覺到明顯的卡頓和不適感;
  • 幀率波動很大的動畫,亦會使人感覺到卡頓。

盒子端動畫優化

在騰訊視頻客廳盒子端,Web 動畫未進行優化之前,一些復雜動畫的幀率僅有 10 ~ 30 FPS,卡頓感非常明顯,帶來很不好的用戶體驗。

而進行優化之后,能將 10 ~ 30 FPS的動畫優化至 30 ~ 60 FPS,雖然不算優化到最完美,但是當前盒子硬件的條件下,已經算是非常大的進步。

盒子端 Web 動畫性能比較

首先先給出在盒子端不同類型的Web 動畫的性能比較。經過對比,在盒子端 CSS 動畫的性能要優于 Javascript 動畫,而在 CSS 動畫里,使用 GPU 硬件加速的動畫性能要優于不使用硬件加速的性能。

所以在盒子端,實現一個 Web 動畫,優先級是:

GPU 硬件加速 CSS 動畫 > 非硬件加速 CSS 動畫 > Javascript 動畫

動畫性能上報分析

要有優化,就必須得有數據做為支撐。對比優化前后是否有提升。而對于動畫而言,衡量一個動畫的標準也就是 FPS 值。

所以現在的關鍵是如何計算出每個動畫運行時的幀率,這里我使用的是requestAnimationFrame這個函數近似的得到動畫運行時的幀率。

考慮到盒子都是安卓系統,且大多版本較低且硬件性能堪憂,導致一是許多高級 API 無法使用,二是這里只是近似得到動畫幀率

原理是,正常而言requestAnimationFrame這個方法在一秒內會執行 60 次,也就是不掉幀的情況下。假設動畫在時間 A 開始執行,在時間 B 結束,耗時 x ms。而中間requestAnimationFrame一共執行了 n 次,則此段動畫的幀率大致為:n / (B - A)。

核心代碼如下,能近似計算每秒頁面幀率,以及我們額外記錄一個allFrameCount,用于記錄 rAF 的執行次數,用于計算每次動畫的幀率 :

var rAF = function () {
    return (
        window.requestAnimationFrame ||
        window.webkitRequestAnimationFrame ||
        function (callback) {
            window.setTimeout(callback, 1000 / 60);
        }
    );
}();
 
var frame = 0;
var allFrameCount = 0;
var lastTime = Date.now();
var lastFameTime = Date.now();
 
var loop = function () {
    var now = Date.now();
    var fs = (now - lastFameTime);
    var fps = Math.round(1000 / fs);
 
    lastFameTime = now;
    // 不置 0,在動畫的開頭及結尾記錄此值的差值算出 FPS
    allFrameCount++;
    frame++;
 
    if (now > 1000 + lastTime) {
        var fps = Math.round((frame * 1000) / (now - lastTime));
        // console.log('fps', fps); 每秒 FPS
        frame = 0;
        lastTime = now;
    };
 
    rAF(loop);
}

研究結論

所以,我們的目標就是在使用 GPU 硬件加速的基礎之上,更深入的去優化 CSS 動畫,先給出最后的一個優化步驟方案:

1.精簡 DOM ,合理布局

2.使用 transform 代替 left、top,減少使用耗性能樣式

3.控制頻繁動畫的層級關系

4.考慮使用 will-change

5.使用 dev-tool 時間線 timeline 觀察,找出導致高耗時、掉幀的關鍵操作

下文會有每一步驟的具體分析解釋。

Web 每一幀的渲染

要想達到 60 FPS,每幀的預算時間僅比 16 毫秒多一點 (1 秒/ 60 = 16.67 毫秒)。但實際上,瀏覽器有整理工作要做,因此您的所有工作需要盡量在 10 毫秒內完成。

而每一幀,如果有必要,我們能控制的部分,也是像素至屏幕管道中的關鍵步驟如下:

完整的像素管道JS / CSS > 樣式 > 布局 > 繪制 > 合成:

1.JavaScript。一般來說,我們會使用 JavaScript 來實現一些視覺變化的效果。比如用 jQuery 的 animate 函數做一個動畫、對一個數據集進行排序或者往頁面里添加一些 DOM 元素等。當然,除了 JavaScript,還有其他一些常用方法也可以實現視覺變化效果,比如:CSS Animations、Transitions 和 Web Animation API。

2.樣式計算。此過程是根據匹配選擇器(例如 .headline 或 .nav > .nav__item)計算出哪些元素應用哪些 CSS 3. 規則的過程。從中知道規則之后,將應用規則并計算每個元素的最終樣式。

3.布局。在知道對一個元素應用哪些規則之后,瀏覽器即可開始計算它要占據的空間大小及其在屏幕的位置。網頁的布局模式意味著一個元素可能影響其他元素,例如 body> 元素的寬度一般會影響其子元素的寬度以及樹中各處的節點,因此對于瀏覽器來說,布局過程是經常發生的。

4.繪制。繪制是填充像素的過程。它涉及繪出文本、顏色、圖像、邊框和陰影,基本上包括元素的每個可視部分。繪制一般是在多個表面(通常稱為層)上完成的。

5.合成。由于頁面的各部分可能被繪制到多層,由此它們需要按正確順序繪制到屏幕上,以便正確渲染頁面。對于與另一元素重疊的元素來說,這點特別重要,因為一個錯誤可能使一個元素錯誤地出現在另一個元素的上層。

當然,不一定每幀都總是會經過管道每個部分的處理。我們的目標就是,每一幀的動畫,對于上述的管道流程,能避免則避免,不能避免則最大限度優化。

優化動畫步驟

先給出一個步驟,調優一個動畫,有一定的指導原則可以遵循,一步一步深入動畫:

1.精簡 DOM ,合理布局

這個沒什么好說的,如果可以,精簡 DOM 結構在任何時候都是對頁面有幫助的。

2.使用 transform 代替 left、top,減少使用耗性能樣式

現代瀏覽器在完成以下四種屬性的動畫時,消耗成本較低:

  • position(位置):transform: translate(npx, npx)
  • scale(比例縮放):transform: scale(n)
  • rotation(旋轉) :transform: rotate(ndeg)
  • opacity(透明度):opacity: 0...1

如果可以,盡量只使用上述四種屬性去控制動畫。

不同樣式在消耗性能方面是不同的,改變一些屬性的開銷比改變其他屬性要多,因此更可能使動畫卡頓。

例如,與改變元素的文本顏色相比,改變元素的box-shadow將需要開銷大很多的繪圖操作。 改變元素的width可能比改變其transform要多一些開銷。如box-shadow屬性,從渲染角度來講十分耗性能,原因就是與其他樣式相比,它們的繪制代碼執行時間過長。

這就是說,如果一個耗性能嚴重的樣式經常需要重繪,那么你就會遇到性能問題。其次你要知道,沒有不變的事情,在今天性能很差的樣式,可能明天就被優化,并且瀏覽器之間也存在差異。

開啟 GPU 硬件加速

歸根結底,上述四種屬性的動畫消耗較低的原因是會開啟了 GPU 硬件加速。動畫元素生成了自己的圖形層(GraphicsLayer)。

通常而言,開啟 GPU 加速的方法我們可以使用

will-change: transform

這會使聲明了該樣式屬性的元素生成一個圖形層,告訴瀏覽器接下來該元素將會進行 transform 變換,讓瀏覽器提前做好準備。

使用will-change并不一定會有性能的提升,因為即使瀏覽器預料到會有這些更改,依然會為這些屬性運行布局和繪制流程,所以提前告訴瀏覽器,也并不會有太多性能上的提升。這樣做的好處是,創建新的圖層代價很高,而等到需要時匆忙地創建,不如一開始直接創建好。

對于 Safari 及一些舊版本瀏覽器,它們不能識別will-change,則需要使用某種 translate 3D 進行 hack,通常會使用

transform: translateZ(0)

所以,正常而言,在生產環境下,我們可能需要使用如下代碼,開啟硬件加速:

{
    will-change: transform;
    transform: translateZ(0);
}

3.控制頻繁動畫的層級關系

動畫層級的控制的意思是盡量讓需要進行 CSS 動畫的元素的z-index保持在頁面最上方,避免瀏覽器創建不必要的圖形層(GraphicsLayer),能夠很好的提升渲染性能。

OK,這里又提到了圖形層(GraphicsLayer),這是一個瀏覽器渲染原理相關的知識(WebKit/blink內核下)。它能對動畫進行加速,但同時也存在相應的加速坑!

簡單來說,瀏覽器為了提升動畫的性能,為了在動畫的每一幀的過程中不必每次都重新繪制整個頁面。在特定方式下可以觸發生成一個合成層,合成層擁有單獨的 GraphicsLayer。

需要進行動畫的元素包含在這個合成層之下,這樣動畫的每一幀只需要去重新繪制這個 Graphics Layer 即可,從而達到提升動畫性能的目的。

那么一個元素什么時候會觸發創建一個 Graphics Layer 層?從目前來說,滿足以下任意情況便會創建層:

  • 硬件加速的 iframe 元素(比如 iframe 嵌入的頁面中有合成層)
  • 硬件加速的插件,比如 flash 等等
  • 使用加速視頻解碼的video>元素
  • 3D 或者 硬件加速的 2D Canvas 元素
  • 3D 或透視變換 (perspective、transform) 的 CSS 屬性
  • 對自己的 opacity 做 CSS 動畫或使用一個動畫變換的元素
  • 擁有加速 CSS 過濾器的元素
  • 元素有一個包含復合層的后代節點(換句話說,就是一個元素擁有一個子元素,該子元素在自己的層里)
  • 元素有一個 z-index 較低且包含一個復合層的兄弟元素

本小點中說到的動畫層級的控制,原因就在于上面生成層的最后一條:

元素有一個 z-index 較低且包含一個復合層的兄弟元素。

這里是存在坑的地方,首先我們要明確兩點:

1.我們希望我們的動畫得到 GPU 硬件加速,所以我們會利用類似transform: translateZ()這樣的方式生成一個 Graphics Layer 層。

2.Graphics Layer 雖好,但不是越多越好,每一幀的渲染內核都會去遍歷計算當前所有的 Graphics Layer ,并計算他們下一幀的重繪區域,所以過量的 Graphics Layer 計算也會給渲染造成性能影響。

記住這兩點之后,回到上面我們說的坑。

假設我們有一個輪播圖,有一個 ul 列表,結構如下:

div class="container">
div class="swiper">輪播圖/div>
ul class="list">
li>列表li/li>
li>列表li/li>
li>列表li/li>
li>列表li/li>
/ul>
/div>

假設給他們定義如下 CSS:

.swiper {
    position: static;
    animation: 10s move infinite;
}
 
.list {
    position: relative;
}
 
@keyframes move {
    100% {
        transform: translate3d(10px, 0, 0);
    }
}

由于給.swiper添加了translate3d(10px, 0, 0)動畫,所以它會生成一個 Graphics Layer,如下圖所示,用開發者工具可以打開層的展示,圖形外的黃色邊框即代表生成了一個獨立的復合層,擁有獨立的 Graphics Layer 。

但是!在上面的圖中,我們并沒有給下面的list也添加任何能觸發生成 Graphics Layer 的屬性,但是它也同樣也有黃色的邊框,生成了一個獨立的復合層。

原因在于上面那條元素有一個 z-index 較低且包含一個復合層的兄弟元素。我們并不希望list元素也生成 Graphics Layer ,但是由于 CSS 層級定義原因,下面的 list 的層級高于上面的 swiper,所以它被動的也生成了一個 Graphics Layer 。

使用 Chrome,我們也可以觀察到這種層級關系,可以看到.list的層級高于.swiper:

所以,下面我們修改一下 CSS ,改成:

.swiper {
    position: relative;
    z-index: 100;
}
 
.list {
    position: relative;
}

這里,我們明確使得.swiper的層級高于.list,再打開開發者工具觀察一下:

可以看到,這一次,.list元素已經沒有了黃色外邊框,說明此時沒有生成 Graphics Layer 。再看看層級圖:

此時,層級關系才是我們希望看到的,.list元素沒有觸發生成 Graphics Layer 。而我們希望需要硬件加速的.swiper保持在最上方,每次動畫過程中只會獨立重繪這部分的區域。

總結

這個坑最早見于張云龍發布的這篇文章CSS3硬件加速也有坑,這里還要總結補充的是:

GPU 硬件加速也會有坑,當我們希望使用利用類似transform: translate3d()這樣的方式開啟 GPU 硬件加速,一定要注意元素層級的關系,盡量保持讓需要進行 CSS 動畫的元素的z-index保持在頁面最上方。

Graphics Layer 不是越多越好,每一幀的渲染內核都會去遍歷計算當前所有的 Graphics Layer ,并計算他們下一幀的重繪區域,所以過量的 Graphics Layer 計算也會給渲染造成性能影響。

可以使用 Chrome ,用上面介紹的兩個工具對自己的頁面生成的 Graphics Layer 和元素層級進行觀察然后進行相應修改。

上面觀察頁面層級的 chrome 工具非常吃內存?好像還是一個處于實驗室的功能,分析稍微大一點的頁面容易直接卡死,所以要多學會使用第一種觀察黃色邊框的方式查看頁面生成的 Graphics Layer 這種方式。

4. 使用 will-change 可以在元素屬性真正發生變化之前提前做好對應準備

// 示例
.example {
    will-change: transform;
}

上面已經提到過 will-change 了。

will-change 為 web 開發者提供了一種告知瀏覽器該元素會有哪些變化的方法,這樣瀏覽器可以在元素屬性真正發生變化之前提前做好對應的優化準備工作。 這種優化可以將一部分復雜的計算工作提前準備好,使頁面的反應更為快速靈敏。

值得注意的是,用好這個屬性并不是很容易:

在一些低端盒子上,will-change會導致很多小問題,譬如會使圖片模糊,有的時候很容易適得其反,所以使用的時候還需要多加測試。

不要將 will-change 應用到太多元素上:瀏覽器已經盡力嘗試去優化一切可以優化的東西了。有一些更強力的優化,如果與 will-change 結合在一起的話,有可能會消耗很多機器資源,如果過度使用的話,可能導致頁面響應緩慢或者消耗非常多的資源。

有節制地使用:通常,當元素恢復到初始狀態時,瀏覽器會丟棄掉之前做的優化工作。但是如果直接在樣式表中顯式聲明了 will-change 屬性,則表示目標元素可能會經常變化,瀏覽器會將優化工作保存得比之前更久。所以最佳實踐是當元素變化之前和之后通過腳本來切換 will-change 的值。

不要過早應用 will-change 優化:如果你的頁面在性能方面沒什么問題,則不要添加 will-change 屬性來榨取一丁點的速度。 will-change 的設計初衷是作為最后的優化手段,用來嘗試解決現有的性能問題。它不應該被用來預防性能問題。過度使用 will-change 會導致生成大量圖層,進而導致大量的內存占用,并會導致更復雜的渲染過程,因為瀏覽器會試圖準備可能存在的變化過程,這會導致更嚴重的性能問題。

給它足夠的工作時間:這個屬性是用來讓頁面開發者告知瀏覽器哪些屬性可能會變化的。然后瀏覽器可以選擇在變化發生前提前去做一些優化工作。所以給瀏覽器一點時間去真正做這些優化工作是非常重要的。使用時需要嘗試去找到一些方法提前一定時間獲知元素可能發生的變化,然后為它加上 will-change 屬性。

5. 使用 dev-tool 時間線 timeline 觀察,找出導致高耗時、掉幀的關鍵操作

1)對比屏幕快照,觀察每一幀包含的內容及具體的操作

2)找到掉幀的那一幀,分析該幀內不同步驟的耗時占比,進行有針對性的優化

3)觀察是否存在內存泄漏

對于 timeline 的使用用法,這里有個非常好的教程,通俗易懂,可以看看:

瀏覽器渲染優化 Udacity 課程

總結一下

對于盒子端 CSS 動畫的性能,很多方面仍處于探索中,本文大量內容在之前文章已經出現過,這里更多的是歸納總結提煉成可參照執行的流程。

本文的優化方案研究同樣適用于 PC Web 及移動 Web

以上就是詳解盒子端CSS動畫性能提升的詳細內容,更多關于盒子端CSS動畫性能提升的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • js css3實現圖片拖拽效果
  • 原生js和css實現圖片輪播效果
  • 利用CSS、JavaScript及Ajax實現圖片預加載的三大方法
  • BootStrap 圖片樣式、輔助類樣式和CSS組件的實例詳解
  • 利用CSS、JavaScript及Ajax實現圖片預加載的方法
  • 基于cssSlidy.js插件實現響應式手機圖片輪播效果
  • 詳解CSS不定寬溢出文本適配滾動
  • 如何在CSS中繪制曲線圖形及展示動畫
  • 詳解CSS玩轉圖片Base64編碼

標簽:邵陽 廣安 混顯 萊蕪 賀州 鶴壁 貴州 滄州

巨人網絡通訊聲明:本文標題《詳解盒子端CSS動畫性能提升》,本文關鍵詞  詳解,盒子,端,CSS,動畫,性能,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解盒子端CSS動畫性能提升》相關的同類信息!
  • 本頁收集關于詳解盒子端CSS動畫性能提升的相關信息資訊供網民參考!
  • 推薦文章
    最好看的中文字幕久久| 18成人在线观看| 欧美日韩在线看| 欧美精品videossex性护士| 成年丰满熟妇午夜免费视频| 人妻激情偷乱频一区二区三区| 国产露脸国语对白在线| 一区二区三区欧美| 欧美国产乱视频| 久无码久无码av无码| 国产高潮国产高潮久久久91| 成人av电影在线观看| 在线不卡国产精品| 国产卡一卡二在线| 亚洲一区二区91| 国产日韩欧美综合在线| 色系列之999| 国产在线xxxx| 91黑人精品一区二区三区| 亚洲精选视频免费看| 性欧美xxxx| 免费网站在线观看黄| www.热久久| 欧美一区二区二区| 免费av在线一区二区| 最新黄色av网址| 久久久777| 欧美一区二区啪啪| 视频在线99| 日韩精品手机在线| 天天av天天翘天天综合网| 国产精自产拍久久久久久| 好吊一区二区三区视频| 国产电影精品久久禁18| 九九热在线精品视频| 亚洲污视频在线观看| www.中文字幕| 亚洲国产免费av| 亚洲乱码一区二区三区| 五月婷婷激情视频| 中文字幕在线视频精品| 在线观看亚洲免费视频| 国内精品视频一区二区三区八戒| 亚洲欧美一区二区三区久久| 欧美色图另类小说| 美女诱惑黄网站一区| 日韩av一区二区在线| 欧美成人精品免费| 成人小说亚洲一区二区三区 | 成人久久久精品国产乱码一区二区 | 国产7777777| 国产亚洲一区字幕| 亚洲国产日韩欧美综合久久| 精品无码国产一区二区三区av| 亚洲免费成人网| 亚洲激情成人网| 亚洲 自拍 另类小说综合图区| 人妻一区二区三区四区| 亚洲欧美一区二区三区在线| 那种视频在线观看| 久久99精品国产.久久久久久| 国产成人精品三级麻豆| 亚洲图片欧美激情| 成年人视频软件| 青青草原国产视频| 国产精品100| 亚洲一区二区激情| 久久久电影一区二区三区| 亚洲精品午夜久久久| 亚洲国产精品久久不卡毛片| 欧美成人在线直播| x99av成人免费| 色噜噜狠狠一区二区三区| 亚洲v在线观看| 国产熟女一区二区丰满| 国产美女主播视频一区| 国产日韩欧美一区二区三区综合| 亚洲成人激情av| 久久男人的天堂| 日韩精品一区二区免费| 国产chinese中国hdxxxx| 欧美三级小视频| 狠狠人妻久久久久久综合麻豆| 一区二区三区**美女毛片| 97人人做人人爱| 337p粉嫩大胆噜噜噜鲁| 日韩精品电影一区二区三区| 国产精品91一区二区| 色婷婷亚洲综合| 亚洲伊人久久综合| 人妻 丝袜美腿 中文字幕| 免费无码国产精品| 天天综合色天天| 精品国产乱码久久久久久蜜柚 | 亚洲三级黄色在线观看| 欧美一级二级三级| 久久亚洲AV无码| av一区二区久久| 精品欧美一区二区三区精品久久| 成人高清视频观看www| 久久精品亚洲天堂| 免费成人你懂的| 欧美一区二区精品在线| 国产精品久久亚洲7777| 亚洲人做受高潮| 中文字幕av在线一区二区三区| 欧美美女操人视频| 成人综合视频在线| 色综合久久88色综合天天| 亚洲精品国精品久久99热| 欧美精品一区二区三区很污很色的 | 91免费在线视频网站| 黄色aaa视频| 亚洲卡通动漫在线| 成人综合国产精品| 日韩欧美成人一区二区三区| 亚洲成人精品一区| 日韩精品手机在线观看| 国产三级按摩推拿按摩| 亚洲欧美另类在线观看| 四虎国产精品免费| 一本一本大道香蕉久在线精品 | 韩国精品一区二区| 91干在线观看| 成人午夜淫片100集| 日韩精品在线免费观看视频| 精品人妻无码中文字幕18禁| 国产精品对白交换视频| 国产高清免费在线| 久久婷婷国产综合国色天香| 日韩av电影在线观看| 国产中文字幕精品| 婷婷四房综合激情五月| 成人动漫av在线| 99久久久精品视频| 伊人一区二区三区| 能看的毛片网站| 婷婷综合五月天| 中文字幕天堂av| 91精品国产色综合久久| 亚洲精品91在线| 日韩在线精品视频| 色老头一区二区| 77777亚洲午夜久久多人| 国产精品永久久久久久久久久| 久久精品国产清自在天天线| 日本在线视频免费| 欧美激情中文字幕乱码免费| 欧美一级特黄aaaaaa| 鲁丝片一区二区三区| 国产喷白浆一区二区三区| 黄色免费福利视频| 欧美日韩成人在线| 国产一级中文字幕| 国产伊人精品在线| 成人精品小蝌蚪| 日本成人中文字幕在线| 日韩风俗一区 二区| 国产精品欧美激情在线| 中文字幕精品一区日韩| 亚洲欧美二区三区| 亚洲国产果冻传媒av在线观看| www日韩欧美| 午夜精品久久久久久久99| 视频在线精品一区| 欧美网站一区二区| 日韩av手机在线免费观看| 久久精品视频网站| 国产精品九九九九| 亚洲 日韩 国产第一区| 欧美日韩久久一区二区| 福利网址在线观看| 日韩av影视| 精品视频在线免费看| 日本丰满少妇做爰爽爽| 亚洲一区二区三区在线视频| 国产拍欧美日韩视频二区| 香蕉在线观看视频| 色偷偷噜噜噜亚洲男人的天堂| 国产一区二区三区黄视频 | 久久色中文字幕| 性欧美丰满熟妇xxxx性仙踪林| 国产精品久久久久久久一区探花| 亚洲美女一区二区三区| 亚洲综合图片网| 91免费版看片| 亚洲精品一区二区三区在线观看| 国产超碰人人模人人爽人人添| www.av91| 久久成人亚洲精品| 国产在线观看免费一区| 国产精品人人妻人人爽人人牛| 亚洲视频在线观看| 国产精品一区二区x88av| 91pony九色| 国产精品第一视频| 亚洲日本一区二区三区| 久久高清免费视频| 欧美中文娱乐网| 欧美成人精品福利| 午夜精品久久久久久不卡8050| 亚洲综合首页| 在线播放一区二区三区| 国产一区二区毛片| www.毛片com| 久久99精品国产99久久| 亚洲av综合色区无码一二三区| 久草资源站在线观看| 久久理论电影网| 一区两区小视频| 免费在线观看成年人视频| 黄瓜视频免费观看在线观看www| 欧美成人久久久| 欧美三级日本三级少妇99| 99久久精品免费观看| 最新av网址在线观看| 国产欧美最新羞羞视频在线观看| 精品免费国产二区三区| 国产精品免费视频观看| av在线网站观看| 欧美性视频精品| 欧美国产日韩精品| 亚洲国产精品一区二区www在线 | 精品欧美一区二区久久| 日本欧美一区二区在线观看| 国产精品无码永久免费不卡| 国产精品国产三级国产专区53 | 三区视频在线观看| 日本高清不卡的在线| 亚洲精品乱码久久久久| 亚洲欧美另类一区| 国产伦精品一区二区三区精品| 国产精品乱码视频| 亚洲精品一区二区久| 国产精品久久久久久一区二区三区 | 男人的天堂影院| 国产日韩二区| 精品调教chinesegay| 久久久五月婷婷| 国产大屁股喷水视频在线观看| 久久久久久成人| 一区二区三区在线视频观看| 亚洲欧美综合在线观看| 欧美精品入口蜜桃| 欧美女人性生活视频| 在线观看免费高清视频| 97av视频在线| 在线欧美小视频| 亚洲人成电影在线| 久久久久久久久免费看无码| 97视频资源在线观看| 欧美一区二区三区日韩| 国产成人精品aa毛片| 青草草在线视频| 久久国产精品网| 欧美在线免费观看| 欧美视频一区二区三区| 国产在线精品视频| 国产精品黄色网| 91小视频网站| 国产丝袜不卡| 久久九九有精品国产23| 性久久久久久久| 日欧美一区二区| 五月婷婷欧美激情| 国产资源第一页| 国产精品久久电影观看| 精品少妇一区二区三区在线播放| 久久久91精品国产一区二区精品| 国产精品久久久久久久免费| 一区二区免费在线观看视频| 日韩欧美一区二区在线观看| 欧美激情在线观看| 555www色欧美视频| 欧美韩国日本综合| 午夜在线视频免费| 国产第一页第二页| 麻豆传媒在线看| 四虎精品欧美一区二区免费| 成人欧美在线视频| 色噜噜国产精品视频一区二区| 亚洲444eee在线观看| 国产一区二区在线观看视频| 中文天堂在线视频| 香蕉视频久久久| 国产 日韩 亚洲 欧美| 91精品国产综合久久久久久丝袜| 这里只有精品在线播放| 欧美视频精品在线| 久久久久久久久久久久久女国产乱| 亚洲精品国产精品国| 麻豆亚洲av熟女国产一区二| 亚洲欧洲国产视频| av在线免费观看国产| 91国产在线播放| 国产69精品久久久久9999| 亚洲成人精品视频| 黑人欧美xxxx| 中文天堂在线一区| 国产精品羞羞答答xxdd| 亚洲国产精品久久久久爰性色| 久久网一区二区| 另类少妇人与禽zozz0性伦| 久久中文精品| 中文字幕av久久爽| 成人涩涩小片视频日本| 性高潮免费视频| av片中文字幕| 97超碰免费观看| 韩日午夜在线资源一区二区| 欧美亚洲视频在线看网址| 国产一区二区动漫| 日韩美女在线视频| 一本到三区不卡视频| 中文字幕一区二区三区蜜月 | 欧美黄色一级大片| 操她视频在线观看| 久久久久无码国产精品一区李宗瑞 | 色播久久人人爽人人爽人人片视av| 欧美一区午夜视频在线观看| 亚洲国产精品久久人人爱| 国产精品萝li| 久久综合久久综合九色| 国产尤物一区二区在线| 刘亦菲毛片一区二区三区| 中文字幕网址在线| 国产在线视频在线观看| 91久久久久久久久久久久久久| 蜜桃传媒一区二区亚洲av| 苍井空张开腿实干12次| 国语对白做受xxxxx在线中国| 欧洲金发美女大战黑人| 一区二区三区av在线| 日韩欧美视频第二区| 欧美lavv| 久久国产精品 国产精品| 国产精品一区二区三区在线观| 成人免费激情视频| 成人免费观看a| 亚洲一区久久久| 成人精品一区二区三区电影免费| 国产精品爽黄69| 成人xvideos免费视频| 91精品久久久久久久| 国产精品日韩在线一区| 国产精品国产三级国产aⅴ浪潮| 69视频在线播放| 欧美一级片在线播放| 2020国产精品视频| 欧美在线中文字幕| 国产精品流白浆视频| 国产欧美婷婷中文| 成人亲热视频网站| 成人久久18免费网站漫画| 国产一区二区三区黄| 欧美日本国产精品| 日韩av电影免费播放| 99亚洲精品视频| 农民人伦一区二区三区| 麻豆av免费在线| 国产资源中文字幕| 精品无码在线视频| 天堂а√在线中文在线鲁大师| 2018天天弄| 无码人妻丰满熟妇奶水区码 | 亚洲av无码精品一区二区| 在线观看中文字幕2021| 国产夫绿帽单男3p精品视频| 五月婷婷伊人网| 国产综合成人久久大片91| 成人sese在线| 免费av手机在线观看| 我要看一级黄色大片| 国产伦精品一区二区三区88av| 亚洲成人黄色av| 久久久久久久久久网站| 亚洲 欧美 中文字幕| 成人午夜免费在线观看| 精品无码三级在线观看视频| 久久蜜臀精品av| 亚洲小说欧美激情另类| 欧美年轻男男videosbes| 日韩不卡在线观看| 欧美激情手机在线视频| 亚洲尤物视频网| 老司机av福利| 亚洲欧美自拍另类日韩| 在线观看日本中文字幕| 精品人妻无码一区二区性色| 天天综合永久入口| 91婷婷韩国欧美一区二区| 亚洲h动漫在线| 日韩精品免费一线在线观看| 久久精品中文字幕电影| 成人黄色片在线| 黄色网络在线观看| 在线播放国产视频| 精品视频在线观看免费| 日本黄色一区二区三区| 91亚洲精华国产精华精华液| 日韩欧美国产中文字幕| 亚洲人成免费电影| 国产一区红桃视频| av久久久久久| 亚洲国产果冻传媒av在线观看| www.日本精品| 日本欧洲一区二区| 亚洲激情五月婷婷| 日韩av在线一区| 国产日韩欧美在线|