日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > CSS >内容正文

CSS

和 Houdini, CSS Paint API 打个招呼吧

發布時間:2025/4/14 CSS 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 和 Houdini, CSS Paint API 打个招呼吧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

瀏覽器發展至今,我很久沒有過這種期待了。

Hodini 的出現將賦予開發者前所未有的控制頁面視覺表現的能力。這個項目的第一步是實現 CSS Paint API。本篇將解釋為什么 Houdini 的到來讓人如此興奮,以及向讀者展示如何開始使用 Paint API。

?

老生常談的問題

相信每次要使用 CSS 新特性時,你都會看到下面這句話:

Wooo,這個效果太酷了!我想等到(大概兩年后吧)大部分瀏覽器都支持的時候就用上。

但我們并不想等那么久,那干脆用 CSS polyfills 好了。但在一些邊界情況下 polyfills 也無能為力。更何況它還可能帶來性能問題。在大部分情況下原生瀏覽器的實現都優于 polyfills。

如果對此你還有疑問,可以看看這篇說的 CSS polyfill 的壞處。

?

新的希望

看到這里,是不是有些失望了?別灰心,很快你不用等瀏覽器廠商,可以直接自己實現一個新特性。這就是 Houdini 要做的事,它來自可拓展的 Web Manifesto,允許開發者直接操作瀏覽器的 CSS 引擎,開發者擁有極大的權限,甚至能干預瀏覽器原生的渲染流程。

這些自定義的 CSS 屬性可以在 worklet 中定義,worklet 也用 JavaScript 編寫,只是瀏覽器執行它們的方式和我們認知里不同,稍后會詳聊這部分。成功使用之后, worklet 將在訪問者的瀏覽器內植入了新特性,用戶就能看到新特性下的視覺效果了。

這就表示,開發者不用再等待瀏覽器廠商了,只要支持了 Houdini 就能用上新特性。甚至是瀏覽器壓根不打算實現的,開發者也能自力更生傳達完美的效果給用戶。

?

瀏覽器支持

好消息是 Apple、Google、微軟、Mozilla、Opera 都是 Houdini 項目的推動者。不過到目前為止只有 Google Chrome 落地實施了這個計劃。撰寫本文時,各個瀏覽器廠商的實現程度:

?

這個表格信息量有些大,容我細細解釋。

Houdini 就好比是一張拼圖,它是一系列 API 的統稱。開發者可以通過 Layout API 控制元素的布局;通過 Parser API 控制 CSS 表達式處理參數的邏輯…不過看得出來,Houdini 項目之路漫漫。

好消息是,其中一個 API 已經可以用起來了:Paint API。通過 Paint API 開發者可以畫出圖像,然后把這些圖像運用到合適的 CSS 屬性上,比如 bakcground-image 和 list-style-image。

暫時你還只能在 Chrome 上做試驗。Chrome 65+ 已默認開啟該接口,65 以下的 Chrome 需要通過訪問 chrome://flags 開啟 Experimental Web Platform features。

可以通過以下任意一種方式確認 Chrome 是否支持該 API:

if ('paintWorklet' in CSS) { // 邏輯寫這里 }

?

@supports (background: paint(id)) { /* 樣式在此 */ }

也可以通過這個 Codepen demo 確認,如果訪問鏈接看到的是兩個綠色打鉤,就說明瀏覽器已經準備好了!

?

技術性提示

Paint API 必須要在支持 https 服務器上或者本地 localhost 上才能使用。所以如果你是在本地開發,可以用 http-server 在本地快速搭建一個服務器。

要記得禁用瀏覽器緩存,讓最新的 worklets 立馬生效。

目前暫時無法在 worklets 中打斷點或者插入 debugger ,不過 console.log() 還是可以用的。

?

簡單的 Paint Worklet

讓我們用 Paint API 搞點事情!先來個小前菜:在一個元素上畫一個叉。這個效果的實際應用就是占位符,常見于一些模型設計/線框圖中,表示該占位需要放一張圖片。·

效果如下,代碼在此:

?

繪制代碼會被寫入 paint worklet 中,它的作用域和功能都有限。Paint Worklet 無法操作 DOM 和全局方法(比如 setInterval)。這樣的特性保證了 worklet 的高效和可多線程化(目前還不支持,但這點是眾望所歸)。

class PlaceholderBoxPainter {paint(ctx, size) {ctx.lineWidth = 2;ctx.strokeStyle = '#666';// 從左上角到右下角的一條線ctx.beginPath();ctx.moveTo(0, 0);ctx.lineTo(size.width, size.height);ctx.stroke();// 從右上角到左下角的一條線ctx.beginPath();ctx.moveTo(size.width, 0);ctx.lineTo(0, size.height);ctx.stroke();} }registerPaint('placeholder-box', PlaceholderBoxPainter);

當重繪元素被觸發時,paint() 方法就會被調用。它接收兩個傳入參數,第一個是將被繪制的 ctx 對象,和 CanvasRenderingContext2D 對象差不多,不過多了些限制(比如無法繪制文字)。size 決定了繪制元素的寬和高。

接下來,瀏覽器頁面將接收這個 paint worklet,給頁面加一個 <div class="placeholder"> 標簽。

<script>CSS.paintWorklet.addModule('worklet.js'); </script> <div class="placeholder"></div>

最后,將 worklet 和 <div> 通過 css 關聯起來:

.placeholder {background-image: paint(placeholder-box); /* 其他樣式... */ }

嗯,就是這樣。

恭喜!看來你已經知道怎么用 Paint API 了!

?

Input Property 的使用

現在我們寫的叉中,線的粗細程度和顏色都是硬編碼的,如果想要改成對齊容器邊框的粗細和顏色要怎么寫呢?

我們可以通過 input property(輸入屬性)實現,這一特性由 Typed Object Model (也可以稱之為 Typed OM)提供。Typed OM 同屬于 Houdini,但和 Paint API 不同的是,需要手動開啟 chrome://flags 中的 Experimental Web Platform features。

可以通過下面的代碼確認是否成功啟用該特性:

if ('CSSUnitValue' in window) { // 樣式在此 }

?

啟用之后,就可以修改原來的 paint worklet 讓它可以接收 input property 了:

class PlaceholderBoxPropsPainter {static get inputProperties() { return ['border-top-width', 'border-top-color']; } paint(ctx, size, props) { // 默認值 ctx.lineWidth = 2; ctx.strokeStyle = '#666'; // 設置線的寬度為(如果存在的)頂邊寬度 let borderTopWidthProp = props.get('border-top-width'); if (borderTopWidthProp) { ctx.lineWidth = borderTopWidthProp.value; } // 設置線的樣式為(如果存在的)定邊樣式 let borderTopColorProp = props.get('border-top-color'); if (borderTopColorProp) { ctx.strokeStyle = borderTopColorProp.toString(); } // 上面 demo 中的代碼從這里開始... } } registerPaint('placeholder-box-props', PlaceholderBoxPropsPainter);

?

通過添加 inputProperties,paint worklet 就知道要去哪里找 CSS 屬性。paint() 函數也能夠接收第三個傳入參數 props,通過它獲取到 CSS 屬性值。現在,我們的占位符看著自然多了(codepen 鏈接):

?

用 border 也可以,不過要記得這個屬性其實是簡寫,背后其實有12個屬性:

.shorthand {border: 1px solid blue; } .expanded { border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: blue; border-right-color: blue; border-bottom-color: blue; border-left-color: blue; }

?

paint worklet 需要指明具體屬性,到目前為止的例子里,我們用到的屬性是 border-top-width 和 border-top-color。

值得注意的是,paint worklet 在處理 border-top-width 時會轉化為以像素為單位的數值。這個處理方式堪稱完美,正是 ctx.lineWidth 所希望的處理方式。什么?怎么知道會轉成像素的?看看 demo 中的第三個占位符,它的 border-top-width 是 1rem,但 paint worklet 接收以后就變成了 16px。

?

帶鋸齒的邊界

讓我們把目光投向新的舞臺 — 用 paint worklet 畫一個帶鋸齒的邊界,代碼在此:

?

接下來,讓我們詳細看看具體實現:

class JaggedEdgePainter {static get inputProperties() { return ['--tooth-width', '--tooth-height']; } paint(ctx, size, props) { let toothWidth = props.get('--tooth-width').value; let toothHeight = props.get('--tooth-height').value; // 為確保「牙齒」排列集中,需要進行一系列計算 let spaceBeforeCenterTooth = (size.width - toothWidth) / 2; let teethBeforeCenterTooth = Math.ceil(spaceBeforeCenterTooth / toothWidth); let totalTeeth = teethBeforeCenterTooth * 2 + 1; let startX = spaceBeforeCenterTooth - teethBeforeCenterTooth * toothWidth; // 從左開始畫 ctx.beginPath(); ctx.moveTo(startX, toothHeight); // 給所有「牙齒」畫上鋸齒 for (let i = 0; i < totalTeeth; i++) { let x = startX + toothWidth * i; ctx.lineTo(x + toothWidth / 2, 0); ctx.lineTo(x + toothWidth, toothHeight); } // 閉合「牙齒」的曲線,并填色 ctx.lineTo(size.width, size.height); ctx.lineTo(0, size.height); ctx.closePath(); ctx.fill(); } } registerPaint('jagged-edge', JaggedEdgePainter);

?

這里我們又用上了 inputProperties,需要控制每個「牙齒」的寬度和高度。還用到了自定義屬性(也被稱為CSS 變量)--tooth-width 和 --tooth-height。這確實比占用現有的 CSS 屬性要好,但想在 paint worklet 中使用自定義屬性還要多走一步。

你看,瀏覽器能夠識別它已知的 CSS 屬性值和對應的變量值,知道某一個屬性需要「長度」作為它的屬性值(比如上面的 border-top-width)。但自定義屬性是開發者控制的,會有各種各樣的屬性值,瀏覽器不知道哪個屬性該對應什么樣的值才合法。所以要用自定義屬性就多了一步,需要告知瀏覽器識別屬性值。

Properties and Values API 做的就是這件事情。這個 API 也是 Houdini 的一部分,同樣需要手動開啟(譯者:方法同上,不再贅述)。

可以通過 JS 確認是否成功開啟:

if ('registerProperty' in CSS) { // 這里寫代碼 }

?

確認開啟后,在 paint worklet 外面加上下面這一段:

CSS.registerProperty({name: '--tooth-width', syntax: '<length>', initialValue: '40px' }); CSS.registerProperty({ name: '--tooth-height', syntax: '<length>', initialValue: '20px' });

?

在 --tooth-width 和 --tooth-height 上填長度相關的值后,瀏覽器就知道在 paint worklet 中使用這兩個屬性時,需要把對應值轉成像素。甚至可以用 calc() !如果不小心寫成非長度值,則會傳入 initialValue 不至于報錯。

.jagged {background: paint(jagged-edge); /* 其他樣式... */ } .slot:nth-child(1) .jagged { --tooth-width: 50px; --tooth-height: 25px; } .slot:nth-child(2) .jagged { --tooth-width: 2rem; --tooth-height: 3rem; } .slot:nth-child(3) .jagged { --tooth-width: calc(33vw - 31px); --tooth-height: 2em; }

?

并不是只允許使用 <length> 類型,更多可選類型請參考這里。

比如我們也能定義 --tooth-color 自定義屬性,并規定屬性值是 <color>。不過在實現鋸齒邊距上,我還有個更好的方案:在 paint worklet 中用 -webkit-mask-image 。這個方案不用修改鋸齒背景色就能實現各種各樣背景的鋸齒了:

.jagged {--tooth-width: 80px; --tooth-height: 30px; -webkit-mask-image: paint(jagged-edge); /* 其他樣式... */ } .slot:nth-child(1) .jagged { background-image: linear-gradient(to right, #22c1c3, #fdbb2d); } .slot:nth-child(2) .jagged { /* 圖源來自游戲 Iconoclasts http://www.playiconoclasts.com/ */ background-image: url('iconoclasts.png'); background-size: cover; background-position: 50% 0; }

?

paint worklet 代碼修改不大,具體效果如下:

?

輸入參數

可以通過輸入參數 (input arguments) 向 paint worklet 中傳參,從 CSS 中傳入參數:

.solid {background-image: paint(solid-color, #c0eb75); /* 其他的樣式... */ }

?

paint worklet 中定義了 inputArguments 需要傳入什么樣的參數。paint() 函數可以通過第四個傳入參數獲取到所有 inputArguments,第四個參數是名為 args 的數組:

class SolidColorPainter {static get inputArguments() { return ['<color>']; } paint(ctx, size, props, args) { ctx.fillStyle = args[0].toString(); ctx.fillRect(0, 0, size.width, size.height); } } registerPaint('solid-color', SolidColorPainter);

?

說實話,我并非這種寫法的擁躉。而且我認為相比之下,自定義屬性更靈活,還可以通過變量名得到自文檔化的 CSS。

?

動畫革命

最后一個 demo 了。通過以上所學知識,我們能做出下面這漂亮的褪色圓點圖案:

?

為了控制這些漸變點,第一步就是先注冊幾個自定義屬性:

CSS.registerProperty({name: '--dot-spacing', syntax: '<length>', initialValue: '20px' }); CSS.registerProperty({ name: '--dot-fade-offset', syntax: '<percentage>', initialValue: '0%' }); CSS.registerProperty({ name: '--dot-color', syntax: '<color>', initialValue: '#fff' });

?

注冊之后 paint worklet 就能使用這些變量啦,接下來就是進行一系列計算,畫出想要的褪色效果:

class PolkaDotFadePainter {static get inputProperties() { return ['--dot-spacing', '--dot-fade-offset', '--dot-color']; } paint(ctx, size, props) { let spacing = props.get('--dot-spacing').value; let fadeOffset = props.get('--dot-fade-offset').value; let color = props.get('--dot-color').toString(); ctx.fillStyle = color; for (let y = 0; y < size.height + spacing; y += spacing) { for (let x = 0; x < size.width + spacing; x += spacing * 2) { // 通過變換 x 在每一行中創建交錯的點 let staggerX = x + ((y / spacing) % 2 === 1 ? spacing : 0); // 通過 fade offset和每個點的橫坐標,計算出該點的半徑 let fadeRelativeX = staggerX - size.width * fadeOffset / 100; let radius = spacing * Math.max(Math.min(1 - fadeRelativeX / size.width, 1), 0); // 畫出目標點 ctx.beginPath(); ctx.arc(staggerX, y, radius, 0, 2 * Math.PI); ctx.fill(); } } } } registerPaint('polka-dot-fade', PolkaDotFadePainter);

?

最后,還要在 CSS 中用上這個 paint worklet 才能看到效果:

.polka-dot {--dot-spacing: 20px; --dot-fade-offset: 0%; --dot-color: #40e0d0; background: paint(polka-dot-fade); /* 其他樣式... */ }

?

現在,故事的轉折點來了!動畫效果可以通過改變自定義屬性的方式實現。當屬性值發生變化時,paint worklet 會被調用,然后瀏覽器重繪元素,最終實現動畫效果。

那么來試試通過 CSS 動畫中的 keyframes(transition 也可以)改變 --dot-fade-offset 和 --dot-color:

.polka-dot {--dot-spacing: 20px; --dot-fade-offset: 0%; --dot-color: #fc466b; background: paint(polka-dot-fade); /* 其他樣式... */ } .polka-dot:hover, .polka-dot:focus { animation: pulse 2s ease-out 6 alternate; /* 其他樣式... */ } @keyframes pulse { from { --dot-fade-offset: 0%; --dot-color: #fc466b; } to { --dot-fade-offset: 100%; --dot-color: #3f5efb; } }

?

最終效果如下,完整代碼在此:

?

看到 houdini 的潛力了吧!是不是酷斃了,paint worlets + 自定義屬性的組合將會給動畫帶來革命!

?

優點和缺點

讓我們再回顧一下 Houdini 的優點(著重回顧本篇大量用到的 CSS Paint API):

  • 不受限制,開發者能創造各種各樣的視覺效果。
  • 不需要新增 DOM 節點。
  • 在瀏覽器渲染管道中執行,效率高。
  • 比起 polyfill,更加性能友好,也更健壯。
  • 這是瀏覽器原生支持的接口,開發者能有不用 hack 的選擇了。
  • 用于實現視覺效果的 CSS 常常被詬病不像一門編程語言,幾乎無法表達完整的邏輯。那現在可以用 paint worklet 編寫視覺效果上的邏輯了。
  • 動畫革命。
  • 快瀏覽器廠商一步實現特性,而且這些特性能實實在在地展現在用戶的設備上。
  • 五大瀏覽器廠商都表示支持 Houdini。

當然了,缺點也不能避而不談:

  • Houdini 的實現之路漫漫。
  • 雖然它可以緩解兼容問題,但首先,瀏覽器們得先兼容 Houdini…
  • 瀏覽器加載 paint worklet 并執行它需要時間,這是異步的,可能導致樣式上的閃動。
  • 開發者工具尚不支持 paint worklet 的斷點調試(也不支持 debugger),不過 console.log() 還能用。

結論

Houdini 將會改變我們現在編寫 CSS 的方式。雖然可能它將歷時不短,但從目前可用的部分(比如,Paint API)來看,潛力驚人。所以,請繼續關注 Houdini 啊~

本文中用到的 demo 都在 Github 上了。更多效果請移步 @iamvdo 的作品。

?

?

相關推薦

  • 對 Houdini 的介紹:Houdini:CSS 領域最令人振奮的革新
  • 業界分享: @趙錦江(勾三股四) 老師在第四屆 CSS Conf 的分享 CSS Houdini 初探
編輯于 2018-04-10

轉載于:https://www.cnblogs.com/rubyxie/articles/8872094.html

總結

以上是生活随笔為你收集整理的和 Houdini, CSS Paint API 打个招呼吧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产亚洲精品久久久久久无几年桃 | 91麻豆文化传媒在线观看 | 久久精品中文字幕少妇 | 亚洲三级在线播放 | 天天色综合三 | 久久午夜国产精品 | 蜜桃视频日韩 | 国产精品美女久久久久久 | 亚洲综合爱 | 国产午夜精品免费一区二区三区视频 | 国产色视频一区 | 久久久久电影网站 | 欧美激情精品久久久久久 | 99久久99久久精品国产片果冰 | 日韩视频一区二区三区在线播放免费观看 | 久草免费资源 | 国产永久免费观看 | 国产毛片在线 | 免费观看第二部31集 | 精品久久久成人 | 久久久久免费精品视频 | 干亚洲少妇 | 99精品免费久久久久久日本 | 亚洲在线不卡 | 日韩av免费一区二区 | 中文字幕在线观看第一页 | 中文字幕日本在线 | 在线播放av网址 | 射射射av | 天天综合网在线观看 | 一区二区三区精品在线视频 | 欧美在线日韩在线 | 日韩美女一级片 | 亚洲视频一级 | 久草免费电影 | 成人在线观看资源 | 99这里只有精品视频 | 夜色.com| 欧美精品你懂的 | 日韩网站在线免费观看 | 亚洲精品国产自产拍在线观看 | 久久久久免费视频 | 在线观看成人小视频 | 伊人官网 | 精品视频中文字幕 | 黄色网中文字幕 | 99激情网| 超级碰视频 | 免费精品国产va自在自线 | 欧美精品久久久久久久亚洲调教 | 亚洲高清免费在线 | 国产日产精品一区二区三区四区的观看方式 | 婷婷国产一区二区三区 | 日韩av区| 久久人操 | 99久久激情视频 | 精品亚洲成人 | 99爱视频在线观看 | 四虎影视精品永久在线观看 | 中文在线a天堂 | 91 在线视频播放 | 欧美日韩超碰 | 欧美日韩在线网站 | 人人澡人人模 | 国产精品久久婷婷六月丁香 | 日韩av成人| av黄网站 | 精品久久久久久久久久久久 | av在线等| 美女福利视频一区二区 | 热re99久久精品国产66热 | 国产亚洲精品久久久网站好莱 | 天天天天射 | 在线观看www91| 91麻豆精品国产91久久久久久久久 | 国产中年夫妇高潮精品视频 | 99热国产在线观看 | 91男人影院 | 黄在线免费看 | 干天天 | 天天做天天爱天天综合网 | 欧美激情综合五月色丁香 | 久久精品中文 | 久草男人天堂 | v片在线播放 | 丁香婷婷射 | 国产精品久久久久久久久久久久久久 | 伊人av综合 | 亚洲国产成人av网 | 99日精品 | 免费看片色 | 99久久99久久精品 | 在线视频一区二区 | 国产黄色精品视频 | 久久久婷 | 91精品视屏 | 久久avav| 国产在线视频一区二区 | 97电影在线观看 | 韩国一区二区三区视频 | a在线观看视频 | 日本中文字幕一二区观 | 在线免费观看涩涩 | 99久久er热在这里只有精品66 | 久久成人亚洲欧美电影 | 免费三级黄色 | 亚洲伊人成综合网 | 久久97久久 | 久久精品二区 | 国产在线播放一区二区三区 | 97在线观看视频 | 日韩激情精品 | 久久黄色免费观看 | 国产精品麻豆欧美日韩ww | 亚洲粉嫩av | 中文字幕在线观看免费高清电影 | 天天艹 | 免费福利在线 | 天天综合在线观看 | 在线观看一区二区视频 | 69精品在线 | 黄色片视频免费 | 91黄色小网站 | 国产九九九九九 | 欧美日韩伦理一区 | 精品久久久久久久久亚洲 | 一本一本久久a久久精品综合 | 亚洲欧美视频在线观看 | 三级小视频在线观看 | 色综合久久综合 | 九九久久国产 | 国产a高清 | 欧美中文字幕第一页 | 国产精品国产三级国产aⅴ入口 | 成人午夜免费剧场 | 99色婷婷 | 亚洲日韩欧美一区二区在线 | 亚洲最新av网址 | 亚洲成人免费在线 | 91最新在线视频 | 日韩免费 | 精品免费久久 | 亚洲视频,欧洲视频 | 亚洲欧美精品在线 | 97超碰国产在线 | 九九视频在线播放 | 91视频这里只有精品 | 亚洲综合激情小说 | 97视频在线免费播放 | 欧美,日韩 | 国产美女免费视频 | 久久久久成人免费 | 成人黄色电影视频 | 国产精品久久久久久久电影 | 国产一区免费看 | 日韩高清免费在线 | 在线性视频日韩欧美 | 一区二区三区高清不卡 | www狠狠操| 国产精品一区二区在线看 | 久久久久国| 天天色天天爱天天射综合 | 亚洲高清精品在线 | 日日草av | 中文欧美字幕免费 | 亚洲综合导航 | 欧美日韩午夜在线 | 亚洲欧美偷拍另类 | 激情综合亚洲精品 | 9色在线视频 | 91麻豆精品国产91久久久使用方法 | 狠狠色丁香婷婷综合欧美 | 国产精品激情偷乱一区二区∴ | 久久久久久久国产精品视频 | 国产色视频123区 | 欧美国产亚洲精品久久久8v | 亚洲欧洲日韩 | 色婷婷综合五月 | 国产精品久久久久久久久久新婚 | 97成人在线观看视频 | 亚洲桃花综合 | 久久无码av一区二区三区电影网 | 日韩性xxxx| 欧美日韩性视频 | 国产老太婆免费交性大片 | 91天堂影院 | 黄色亚洲在线 | 免费观看成人av | 国产原创av片| 99久热在线精品视频成人一区 | 国产精品一区二区免费看 | 免费黄在线看 | 国产精品视频永久免费播放 | 中文字幕av全部资源www中文字幕在线观看 | 久草在线免费在线观看 | 人人爽人人搞 | 日日夜夜天天射 | 久久99精品久久久久婷婷 | 97在线看 | 在线观看国产区 | 成人中文字幕av | 玖玖玖在线 | 日日摸日日| 国产成人精品不卡 | 欧美性色网站 | 五月天电影免费在线观看一区 | 二区三区中文字幕 | 韩国精品福利一区二区三区 | 日韩在线观看影院 | 手机看片1042 | 天天操操| 91av视频在线观看免费 | 激情综合啪啪 | 亚洲二区精品 | 久草在线视频首页 | 欧美视屏一区二区 | 99电影 | 国产精品在线看 | 久久久免费观看完整版 | .精品久久久麻豆国产精品 亚洲va欧美 | 伊人色**天天综合婷婷 | 日韩手机在线观看 | 四虎最新域名 | 欧美日韩一级视频 | 91传媒91久久久 | www.久久久精品 | 亚洲国产精品免费 | 探花视频在线观看免费 | 国产视频中文字幕 | 久草视频视频在线播放 | 99re久久精品国产 | 一区二区三区在线视频观看58 | 91.精品高清在线观看 | 91精品国产乱码久久桃 | 亚洲涩涩网 | 亚洲精品一区二区三区在线观看 | 激情综合色综合久久综合 | 久黄色 | 麻豆国产网站入口 | 四虎成人精品永久免费av | 日韩欧美视频免费看 | 精品96久久久久久中文字幕无 | 99精品免费久久久久久日本 | 国产午夜在线观看视频 | 免费中午字幕无吗 | wwwww.国产 | 最新av免费在线 | 激情视频免费在线观看 | 亚洲国产精品一区二区久久hs | 欧美激情片在线观看 | 五月天婷婷在线观看视频 | 久久久91精品国产一区二区精品 | 久久夜夜操 | 99这里只有 | 亚洲午夜久久久综合37日本 | 99精品视频在线看 | h网站免费在线观看 | 国产97碰免费视频 | av高清免费| 精品在线不卡 | 麻豆91视频| 96精品高清视频在线观看软件特色 | 91精品视频导航 | 国产精品青草综合久久久久99 | 久久久国产一区 | 欧美成人播放 | 国产精品九九视频 | 国产黄免费在线观看 | 九九在线国产视频 | 九色在线| 在线影院中文字幕 | 99热这里只有精品在线观看 | 麻豆视频在线观看免费 | 中文字幕中文字幕在线中文字幕三区 | 永久免费精品视频 | 91成年视频 | 成人毛片一区 | 久久精品99视频 | 91视频免费| 精品视频成人 | 日韩在线高清免费视频 | 午夜美女影院 | 日韩精品短视频 | 欧美性黑人 | 五月激情视频 | 色综合天天射 | 一区在线观看 | 欧美一级性视频 | 首页中文字幕 | 国产精品久久久久久五月尺 | 91av电影在线观看 | 国产69久久久 | 开心激情五月网 | 国产精品系列在线 | 波多野结衣电影一区二区三区 | 欧美日韩国产页 | 麻豆视传媒官网免费观看 | 国产精品成人久久 | 国产精品美女久久久网av | 国产区免费 | 久久国色夜色精品国产 | www.色五月.com| 婷婷在线视频观看 | 在线91网 | 免费麻豆视频 | 欧美色操| 日韩网页 | 伊人狠狠 | 国产精品国产三级国产专区53 | 欧美疯狂性受xxxxx另类 | 亚洲va在线va天堂va偷拍 | 亚洲狠狠丁香婷婷综合久久久 | 国产精品一区二区三区四区在线观看 | 欧美日韩免费网站 | 天天综合网天天 | 亚洲夜夜综合 | 在线免费视频一区 | 91亚洲精品久久久久图片蜜桃 | 一区二区三区三区在线 | 操操操av| 国产高清免费 | 欧美日韩不卡在线观看 | 日韩精品久久久 | 免费人人干 | 人人干在线 | 成人高清在线观看 | 91传媒视频在线观看 | 国色天香第二季 | 天堂中文在线视频 | 青草视频在线 | 99一区二区三区 | 午夜精品成人一区二区三区 | www.天天色.com | 久久久久夜色 | 久久九九久久 | 99精品免费| 午夜电影中文字幕 | 精品久久久国产 | 精品一区二区三区四区在线 | 国产五月婷婷 | 欧美日韩中文在线视频 | 午夜在线免费观看视频 | 伊人国产在线播放 | 在线观看亚洲电影 | 国产一级电影免费观看 | 中文字幕高清 | 成人午夜电影网站 | 欧美婷婷色 | 亚洲成av人片 | 麻豆免费在线播放 | 日日草天天草 | 黄色小说免费观看 | 国产精品久久久久久久久久三级 | 激情丁香综合 | 亚洲精品久久久久999中文字幕 | 91高清完整版在线观看 | 黄色美女免费网站 | 国产激情电影综合在线看 | 久草国产在线观看 | 国产97超碰| 色欧美日韩 | 国产欧美在线一区二区三区 | 五月激情电影 | av福利电影 | 日韩精品久久一区二区三区 | 99久久精品免费看国产四区 | 五月天综合色激情 | 国产精品麻豆免费版 | 91视频3p | 免费日韩 精品中文字幕视频在线 | 精品国产aⅴ麻豆 | 欧美成人播放 | 日韩精品久久一区二区 | 二区在线播放 | 亚欧洲精品视频在线观看 | av福利在线看 | 久久免费在线观看视频 | 1024在线看片 | 天天操天天干天天摸 | 久热电影 | 91在线操 | 欧美一级电影片 | 久久这里有 | 午夜91视频| 久久久久久久久久久久久9999 | 国产免费中文字幕 | 91网页版在线观看 | 成人国产精品免费观看 | 国产一级做a爱片久久毛片a | 国产五月色婷婷六月丁香视频 | 免费av网址在线观看 | www.久久成人 | 欧美人zozo| 中文字幕欧美三区 | 91在线免费看片 | 在线v片免费观看视频 | 天天艹天天干天天 | 成人a视频在线观看 | 六月天综合网 | 成人av免费网站 | 人人干人人添 | 精品久久91 | 日韩黄色大片在线观看 | 欧美日韩在线播放 | 美女精品在线观看 | 超碰在线公开 | 国产成人一区二区三区在线观看 | 99综合电影在线视频 | 日韩免费高清在线 | 久久久精品国产一区二区三区 | 精品国产久 | 91中文在线 | 一区二区三区福利 | 黄色av一区二区三区 | 精品主播网红福利资源观看 | 日韩3区| 免费国产ww| 91秒拍国产福利一区 | 国产亚洲视频系列 | 国产色婷婷在线 | 午夜在线看片 | 日韩理论片 | aaaaaa毛片| 97免费中文视频在线观看 | 久久男人影院 | 国产在线资源 | 中文字幕一二 | av在线影片| 久久综合之合合综合久久 | 最近久乱中文字幕 | 夜夜爽www | 日韩av网页 | 天天搞天天干天天色 | 日韩精品一区二区三区免费观看 | 亚洲精选在线 | 国产高清视频免费在线观看 | 麻豆免费精品视频 | 欧美日韩中文在线观看 | 人人讲下载 | 亚洲成人国产 | 亚洲一区二区高潮无套美女 | 欧美激情视频久久 | 欧美日韩在线观看不卡 | 999成人国产 | 欧美日韩国产免费视频 | 超薄丝袜一二三区 | 手机av观看 | 欧美精品二区 | 一级电影免费在线观看 | 天天舔天天搞 | 久久社区视频 | 美腿丝袜av| 国产一级视频在线 | 亚洲天堂网在线播放 | 久久夜色精品国产欧美乱极品 | 亚洲高清网站 | 久久精品视频中文字幕 | 99在线精品视频观看 | 在线观看视频中文字幕 | 97综合在线 | 黄色一级大片在线免费看国产一 | 久久99国产精品视频 | 精品专区一区二区 | 99久久久久久国产精品 | 日色在线视频 | 国产91免费在线观看 | 久久91久久久久麻豆精品 | 国产又粗又猛又色又黄网站 | 国产精品一区久久久久 | 精品视频国产 | 97狠狠操 | 一区二区在线影院 | av黄色免费看 | 国产裸体视频网站 | 特级大胆西西4444www | 97视频免费看 | 免费视频 你懂的 | 98精品国产自产在线观看 | 日韩高清毛片 | 99精品视频在线看 | 久久久久国产精品午夜一区 | 久草免费手机视频 | 99视频免费在线观看 | 不卡的av片| 91探花系列在线播放 | 免费网站观看www在线观看 | 精品一二三四在线 | 久久99精品久久久久久 | 日韩久久精品一区 | 日韩理论片中文字幕 | 黄色一级免费网站 | 婷婷精品国产一区二区三区日韩 | 亚洲激情五月 | 久久久久激情视频 | 日韩一级网站 | 久久特级毛片 | 一级免费黄色 | 午夜国产在线 | 国产麻豆传媒 | 激情欧美日韩一区二区 | 日韩激情视频在线观看 | 欧美色黄 | 久草在线最新免费 | 99免费在线观看 | 天天干夜夜 | 一区二区久久久久 | 久碰视频在线观看 | 午夜丰满寂寞少妇精品 | 免费视频区 | 久草久热 | 在线观看久久 | 蜜臀av一区二区 | 高清一区二区三区 | 成人丝袜 | 99r国产精品| 综合色爱| 又长又大又黑又粗欧美 | 黄色特级毛片 | 九九免费视频 | 日本中文不卡 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 人人看人人草 | 亚洲精品国产精品久久99热 | 免费特级黄色片 | 韩日三级在线 | 人人看看人人 | 久草资源在线 | 国产人免费人成免费视频 | 亚洲国产中文在线观看 | 蜜臀av夜夜澡人人爽人人桃色 | 狠狠干网站 | 日本高清免费中文字幕 | 中文字幕4| 视频在线观看91 | 国产亚洲精品久久久久久移动网络 | 欧洲一区精品 | 日韩欧美在线播放 | 正在播放一区二区 | 色多多污污在线观看 | av三级av| 欧美日韩综合在线 | 天天综合精品 | 国产福利在线免费 | 久久国产美女视频 | 国产精品视频99 | 日韩| 激情视频免费在线观看 | 国产无遮挡又黄又爽在线观看 | 少妇av网 | 色com| 国产中文字幕亚洲 | 久久国产精品一国产精品 | 狠狠色伊人亚洲综合网站色 | 久久国产精品一二三区 | 亚洲免费观看视频 | 久久久午夜精品福利内容 | 亚洲日本中文字幕在线观看 | 国产91成人在在线播放 | 亚洲涩涩网站 | 97av.com| 久久一区二区三区四区 | 又湿又紧又大又爽a视频国产 | 亚洲一级在线观看 | 精品福利在线观看 | 亚洲男女精品 | 在线免费日韩 | 一区二区三区四区五区在线视频 | 日韩激情中文字幕 | 国产香蕉久久精品综合网 | 久久无码av一区二区三区电影网 | 狠狠色噜噜狠狠 | www178ccom视频在线 | 中文av字幕在线观看 | 国产精品igao视频网入口 | 2018好看的中文在线观看 | 欧美在线aa | 日韩激情在线 | 亚洲一区二区视频在线 | 亚洲高清在线视频 | 亚洲黄色免费 | 九九视频免费在线观看 | 亚洲成a人片77777kkkk1在线观看 | 国产精品国产亚洲精品看不卡15 | 91视频在线免费看 | 91麻豆国产福利在线观看 | 91精品网站在线观看 | 天天射综合| 国产盗摄精品一区二区 | 国产超碰在线 | 中文在线www| 亚洲成av人片在线观看无 | 国产a级免费 | 天天爽天天射 | 国产精品欧美一区二区 | 国产91对白在线播 | 成人免费网站视频 | 日韩在线免费不卡 | 国产精品日韩久久久久 | 久艹视频在线观看 | 91九色蝌蚪视频在线 | 91av看片 | 日韩字幕 | 国产黄色免费电影 | 天堂va欧美va亚洲va老司机 | 五月婷婷综合在线观看 | 欧洲精品二区 | 亚洲视频每日更新 | 中文字幕文字幕一区二区 | 美女国产网站 | 成人在线小视频 | 三级视频国产 | av亚洲产国偷v产偷v自拍小说 | 色婷婷免费视频 | 91久久奴性调教 | 国产成人在线看 | 国产精品1区2区3区在线观看 | 色综合久久久久久中文网 | 中文在线中文资源 | 五月婷香 | 五月天中文字幕mv在线 | 天天干夜夜夜操天 | 久久成人在线视频 | 人人射人人插 | 欧美日韩高清国产 | 国产日产在线观看 | a电影免费看| 视频在线99| 在线中文字幕av观看 | 98福利在线 | 香蕉在线观看 | 日韩午夜电影网 | 97在线观看免费视频 | 久久久高清免费视频 | 久久狠狠干| 在线视频久久 | 久久小视频 | 在线免费高清视频 | 99久久精品国产欧美主题曲 | 日韩色高清 | www.久久久久 | 99成人精品 | 国产亚洲日 | 日韩电影精品 | 国产亚洲欧美精品久久久久久 | 欧美日韩成人 | 中文字幕乱码亚洲精品一区 | 国产婷婷| 中文字幕免费高清av | 免费在线色 | 国产一区二区在线播放 | 国产精品久久久久永久免费看 | 中文字幕在线中文 | 天天爱天天操天天干 | 日本中文字幕在线免费观看 | 亚洲欧美成人在线 | 五月宗合网| 国产成人精品电影久久久 | 国产成人免费av电影 | 日本性生活免费看 | 日韩一二三在线 | 亚洲女欲精品久久久久久久18 | 婷婷久久一区二区三区 | 久久久久久久影视 | 日韩欧美视频在线观看免费 | 国内精品久久久久久久影视麻豆 | 超碰人人av | 日韩黄色网络 | 日日综合| 99久久精品久久久久久清纯 | 99免费视频| 在线观看亚洲视频 | 色视频网站在线 | 美女露久久 | 91av看片 | 在线看一区二区 | 又大又硬又黄又爽视频在线观看 | 亚洲精品美女在线观看播放 | 精品久久久99 | 久久久福利 | 午夜精品久久久久久久久久 | 国产精品一区二区久久精品爱微奶 | 免费aa大片 | 亚洲欧美日本国产 | 日韩免费在线观看网站 | 欧洲精品一区二区 | 国产精品高清在线 | 欧美一区二区三区在线 | 国产又粗又硬又爽的视频 | 欧美色操 | 天天色天天射天天操 | 久久久久99精品成人片三人毛片 | 激情综合网在线观看 | 色五婷婷| 91亚洲精品乱码久久久久久蜜桃 | 91精品国产成 | 99国产精品一区二区 | 日韩资源在线 | 久久亚洲综合色 | 日韩高清在线不卡 | 久久精品免费看 | 国产亚洲成人网 | 天天操天| 国产成人在线看 | 亚洲视频免费在线观看 | 99久久99久久免费精品蜜臀 | 4438全国亚洲精品观看视频 | 久久天天操 | 午夜精品福利影院 | 久久久久久久久久久影视 | 国内揄拍国内精品 | 国产午夜在线观看视频 | 日韩精品免费一区二区 | 久久成熟 | 毛片的网址 | jizz18欧美18| 婷婷丁香花五月天 | 成人一区影院 | 中文字幕 影院 | 欧美日韩中文国产一区发布 | 欧美小视频在线 | 91九色网站| 九色91福利 | 亚洲精品久久久久中文字幕m男 | 久久你懂得 | 国产高清免费视频 | 一区在线播放 | 激情开心色 | 国产一二三四在线视频 | 国产精品久久久久久久久久久久午夜 | 天天爱综合 | 91精品在线观看视频 | 97在线观看视频免费 | 精品无人国产偷自产在线 | 中文字幕在线观看第一区 | 欧美日韩久久久 | 国产在线视频导航 | 精品国产欧美一区二区三区不卡 | 麻豆国产露脸在线观看 | 中文字幕亚洲欧美日韩2019 | 午夜精品一区二区三区在线观看 | 色婷婷啪啪免费在线电影观看 | 国产中文 | 欧美一区三区四区 | 国产视频在线观看一区 | 三级av免费 | 97电影在线看视频 | 在线观看黄 | 国产精品欧美一区二区 | 狠狠地操 | 欧美激情精品久久久久久免费 | 亚洲视频 一区 | 欧美一级性生活片 | 一区二区三区 亚洲 | 国产91精品一区二区麻豆亚洲 | 狠狠干夜夜爱 | 欧美性粗大hdvideo | 九九九九精品 | 久久精品牌麻豆国产大山 | 国产区 在线 | 怡红院久久 | 中文字幕999 | 国产探花视频在线播放 | 欧美视频18 | 日韩精品中文字幕在线 | 91精品国自产在线 | 久久精品com| 国产一级片观看 | 99久久精品免费看国产一区二区三区 | 国产高清在线免费观看 | 日韩在线观看三区 | 91av手机在线 | 日韩午夜视频在线观看 | 又紧又大又爽精品一区二区 | 国产精品第7页 | 91久久久久久久一区二区 | 日韩免费高清在线 | 日本精品二区 | 日韩毛片在线一区二区毛片 | 亚洲视频axxx | 韩国中文三级 | 娇妻呻吟一区二区三区 | 国产精品久久久久久久久久久免费 | 一级成人在线 | 精品在线视频一区 | 人人爱夜夜操 | 亚洲精品一区二区18漫画 | 99视频在线观看视频 | 亚洲 欧洲 国产 日本 综合 | 欧美一区二区免费在线观看 | 国产精品久久久久久一二三四五 | 天堂在线一区二区 | 911国产精品 | 丁香六月激情婷婷 | 青青久草在线 | 综合在线观看色 | 亚洲在线黄色 | 揉bbb玩bbb少妇bbb | 国产精品国产毛片 | 久久99精品久久久久久清纯直播 | 亚洲精品久久久久中文字幕二区 | 国产又粗又猛又黄又爽视频 | 四虎在线免费视频 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 2024国产精品视频 | 国产精品久久99精品毛片三a | 久久国产精品免费视频 | 亚洲精品三级 | 国产精品中文字幕在线观看 | 成人av高清 | av专区在线 | 国产九九热 | 中文字幕日本电影 | 中文字幕日韩精品有码视频 | 天天天天色综合 | 粉嫩av一区二区三区四区 | 亚洲国产成人在线观看 | 五月婷婷中文网 | 成人性生交视频 | 成人av免费网站 | 国产亚洲精品免费 | 九九九九九精品 | 天天摸日日摸人人看 | 久久久高清视频 | 日韩电影中文字幕在线 | 久久蜜臀一区二区三区av | 丁香电影小说免费视频观看 | 亚洲欧美成人网 | 91av视频在线观看免费 | 天天色天天骑天天射 | 中文字幕视频 | 成人资源网 | 四虎国产精品免费观看视频优播 | 波多野结衣视频一区 | 免费观看日韩 | 国产精品成人久久久久 | 欧美日韩一区二区三区视频 | 久久久免费观看完整版 | 婷婷色五| 久久超级碰| 亚洲精品乱码久久久久久蜜桃欧美 | 欧美一级电影片 | av超碰在线 | 欧洲亚洲精品 | 一区二区三区高清在线 | 久草在线视频网站 | 久久不卡国产精品一区二区 | 免费av片在线 | 国产精品久久久久久久久久久杏吧 | 一级精品视频在线观看宜春院 | av高清在线观看 | 欧美analxxxx | 999久久久免费精品国产 | 在线观看视频99 | 97国产精品一区二区 | 亚洲综合精品视频 | 日韩欧美高清视频在线观看 | 亚洲视屏 | 亚洲va欧美va | 深夜免费网站 | 国产999视频在线观看 | 久久呀| 亚洲视频精选 | 夜色.com| 福利视频网站 | 伊人五月天.com | 国产一级在线免费观看 | 99久久国产免费,99久久国产免费大片 | 免费h在线观看 | 91成人精品| 综合视频在线 | 欧美午夜久久久 | 五月婷婷播播 | 欧美一性一交一乱 | 天天干天天拍 | 日本中文字幕系列 | 久久精品视频网站 | 91精品国产三级a在线观看 | 成人在线视频免费看 | 久久综合色8888 | 91久久丝袜国产露脸动漫 | 在线观看网站av | 久久综合九色综合97婷婷女人 | 天天干天天操天天拍 | 国产午夜一级毛片 | 81国产精品久久久久久久久久 | 一级黄色免费 | 探花视频在线版播放免费观看 | 欧美91视频 | www视频在线播放 | 鲁一鲁影院 | 日本不卡123 | 免费黄色一区 | 久久久久久亚洲精品 | 久久九九免费 | 成人91av| 狂野欧美激情性xxxx欧美 | 日韩精品免费专区 | 日韩专区视频 | 伊人色综合久久天天网 | 一区二区三区免费 | 麻豆视频免费入口 | 四虎永久国产精品 | 伊人久久av | 97免费 | 亚欧日韩成人h片 | 久久婷婷色| 国产精品久久久一区二区 | 亚洲人成人在线 | a在线播放 | 国产一二三四在线观看视频 | 午夜a区| 久久久久久久久艹 | 青草草在线视频 | 中文字幕免费观看视频 | 成人av影视观看 | 日本久久成人中文字幕电影 | 久久五月天综合 | 久久国产精品一区二区三区四区 | www.色爱 | 欧美小视频在线观看 | 91大神精品视频在线观看 | 日日综合网| 激情av网址 | 97超碰人人看| 99re中文字幕| 激情久久伊人 | 亚洲免费av片 | 又黄又爽又湿又无遮挡的在线视频 | 国产一区在线不卡 | 免费观看成人网 | av在线影视| 日日夜夜噜 | 奇米影视8888 | 免费看片黄色 | 四季av综合网站 | av一级二级 | 婷婷在线综合 | 伊人狠狠 | 一区三区在线欧 | 96精品视频 | 久久在线观看视频 | 国产网红在线观看 | 91视频在线免费 | 国产一区在线精品 | 99爱爱| 国产第一页精品 | 国产精品不卡在线播放 | 欧美日韩一区二区三区在线免费观看 | 亚洲成av人片在线观看www | 97精品在线观看 | 天天天天天天天操 | 亚洲va天堂va欧美ⅴa在线 | 天堂av在线免费 | 亚洲免费不卡 | 免费看污在线观看 | 欧美一进一出抽搐大尺度视频 | 国产精品手机看片 | 亚洲区精品视频 | 日韩午夜三级 | 欧美成人亚洲 | av看片网 | av网站在线免费观看 | 亚洲国内精品 | 人人爱人人舔 | 日韩欧美一区视频 | 精品国产一区二区三区免费 | 成人av电影免费 | 日本中文字幕电影在线免费观看 | 啪嗒啪嗒免费观看完整版 | 国产a视频免费观看 | 久久不见久久见免费影院 | 亚洲精品国产精品国自产 | 三级黄色大片在线观看 | www毛片com| 午夜精品中文字幕 | 国产精品免费久久 | 久久国产精品99久久久久久老狼 | 亚洲精品视频网 | 一级黄色大片在线观看 | 美女精品在线 | 免费亚洲视频 | 在线视频一二区 | 欧美日韩精品在线视频 | 久热免费 | 久久人人爽人人人人片 | 免费亚洲成人 | 一区二区三区在线看 | 91看片淫黄大片一级在线观看 | 九九在线高清精品视频 | 久久桃花网 | 国产精品免费视频观看 | 91福利影院在线观看 | 亚洲国产欧美一区二区三区丁香婷 | 天堂中文在线视频 | 一区二区在线不卡 | 中文字幕在线观看视频一区 | 午夜三级毛片 | 成人免费观看视频网站 |