国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

使用Chrome擴展程序生成網(wǎng)頁骨架屏

共 3920字,需瀏覽 8分鐘

 ·

2021-01-25 06:45

來源:橙紅年代

https://juejin.im/post/6856784900775739400

對于依賴接口渲染的頁面,在拿到數(shù)據(jù)之前頁面往往是空白的,為了提示用戶當前正在加載中,往往會使用進度條、loading圖標或骨架屏的方式。對于前兩種方案而言,實現(xiàn)比較簡單;本文主要研究骨架屏的應(yīng)用及實現(xiàn),并給出一種使用Chrome擴展工具快速生成骨架屏的方案。

首先看看效果 先放一個動圖展示

掘金首頁

百度首頁

知乎首頁

安裝插件后訪問任意網(wǎng)頁,基本上均可以一鍵生成骨架屏(由于時間關(guān)系,部分節(jié)點并沒有完全實現(xiàn),不過目前展示Demo應(yīng)該是夠了

本文所有代碼均放在https://github.com/tangxiangmin/web-skeleton-extension上面了,時間關(guān)系代碼寫的比較潦草~

(寫完準備提交Chrome應(yīng)用商店的時候才發(fā)現(xiàn),居然有一個類似的應(yīng)用:skeleton extention~囧,就當瞎折騰一番了

骨架屏方案

目前有幾種比較常見的骨架屏方案

  1. 使用圖片、SVG實現(xiàn)骨架屏效果,可以讓設(shè)計在提供頁面設(shè)計稿的時候同步一份當前頁面的骨架屏圖片資源,這種方案開發(fā)成本較低,缺點是不太靈活,如果頁面迭代比較頻繁,會導(dǎo)致設(shè)計同事的工作量增大
  2. 手寫HTML+CSS實現(xiàn)骨架屏,較第一種圖片方案而言,可以更靈活地定制骨架屏UI和動畫效果,缺點也很明顯,開發(fā)和維護成本都較高;目前可以使用諸如react-content-loader等現(xiàn)有的骨架屏庫,通過配置快速生成對應(yīng)的骨架屏,但對于某些高度定制的頁面也不能很好地滿足業(yè)務(wù)需求
  3. 餓了么前端團隊提供的一套方案:page-skeleton-webpack-plugin,其大致原理是使用puppeteer向指定頁面注入代碼,遍歷頁面節(jié)點,根據(jù)節(jié)點的類型渲染對應(yīng)的骨架屏樣式,然后結(jié)合webpack將返回的HTML自動注入到項目模板文件中,傳送門:一種自動化生成骨架屏的方案:https://github.com/Jocs/jocs.github.io/issues/22

在最開始調(diào)研骨架屏方案的時候也注意到了page-skeleton-webpack-plugin,體驗了一下發(fā)現(xiàn)并不能完全滿足我的需求,對于骨架屏方案,我的期望是

  • 使用方便,能夠根據(jù)給定頁面,自動生成對應(yīng)的骨架屏,不需要安裝額外的工具(不用安裝puppeteer)
  • 能夠靈活地處理骨架屏生成的HTML文件,支持首屏或者部分區(qū)域使用骨架屏(不需要webapck自動注入模板文件,反之,需要實現(xiàn)為項目單個或多個頁面配置對應(yīng)骨架屏)
  • 能夠自定義骨架屏各個區(qū)塊的樣式,能夠指定包含或者忽略某些節(jié)點,生成的代碼體積要足夠小(骨架屏并不需要完全還原原本頁面)

恰好調(diào)研骨架屏方案的那段時間正在處理Chrome擴展程序的工單,發(fā)現(xiàn)page-skeleton-webpack-plugin借助puppeteer執(zhí)行頁面腳本的方案,完全可以通過擴展程序的content.js實現(xiàn),這樣,不需要借助本地開發(fā)環(huán)境也可以渲染骨架屏了

骨架屏實現(xiàn)原理

何為骨架?

首先需要保留節(jié)點的布局信息,這樣就可以復(fù)用節(jié)點原有的樣式,不會破壞整體布局,最后生成的骨架屏樣式就可以與原本的頁面保持一致。

然后為了保證生成樣式的統(tǒng)一,需要覆蓋節(jié)點原本的UI信息,包括背景色、圖片、邊框等。

由于骨架屏僅僅作為數(shù)據(jù)返回之前的占位,并不需要完全復(fù)原原本的頁面,因此為了使整個骨架屏看起來比較簡潔,可以忽略不必要的節(jié)點。

那么要處理哪些節(jié)點、忽略哪些節(jié)點呢?因此針對不同節(jié)點,我們需要進行判斷并分別處理。

區(qū)分不同節(jié)點

這部分大量參考了一種自動化生成骨架屏的方案:https://github.com/Jocs/jocs.github.io/issues/22 這篇文章的思路,不妨移步閱讀,下面簡單整理一下各種不同節(jié)點的處理方案,并增加了一些額外的節(jié)點處理策略。

由于涉及大量的節(jié)點操作,因此使用了jQuery。

文字

把文字占據(jù)的空間看做上行高、內(nèi)容、下行高,

  • 行高部分用透明色,
  • 內(nèi)容部分用灰色

這樣就可以展示原本的文字區(qū)域了,對于多行文字而言,顯示的就是斑馬狀條紋形式的骨架屏結(jié)構(gòu)

.line?{
????background-image:?linear-gradient(red?25%,blue?25%,?blue?75%,?red?75%);
????/*background-image:?linear-gradient(red?25%,blue?0,?blue?75%,?red?0);?//?與上面等價*/
}
復(fù)制代碼

這里需要計算元素的行高、字體大小等信息

renderText($dom)?{
????let?fontSize?=?parseFloat($dom.css("font-size"));
????let?lineHeight?=?$dom.css("line-height");

????//?todo?處理瀏覽器默認行高、包含繼承、自定義等屬性
????if?(lineHeight?===?"normal")?{
????????lineHeight?=?fontSize?*?1.4;
????}?else?{
????????lineHeight?=?parseFloat(lineHeight);
????}

????const?textHeightRatio?=?fontSize?/?lineHeight;
????const?firstColorPoint?=?(((1?-?textHeightRatio)?/?2)?*?100).toFixed(2);
????const?secondColorPoint?=?(((1?-?textHeightRatio)?/?2?+?textHeightRatio)?*?100).toFixed(2);

????const?style?=?`--fp:${firstColorPoint}%;--sp:${secondColorPoint}%;--lh:${lineHeight}px;`;
????$dom.addClass('sk-text');
????$dom.attr("style",?style);
}
復(fù)制代碼

因為每個文本節(jié)點的字體大小和行高可能不一樣,如果全在style標簽上添加樣式,則生成的HTML文件可能比較大,因此這里使用了CSS Var,然后統(tǒng)一在sk-text的樣式類中處理背景色

.sk-text?{
????--c:?#eee;
????--fp:?0%;
????--sp:?0%;
????--lh:?0;

????display:?inline-block;
????background-origin:?content-box?!important;
????background-clip:?content-box?!important;
????background-color:?transparent?!important;
????background-repeat:?repeat-y?!important;
????background-image:?linear-gradient(transparent?var(--fp),?var(--c)?0,?var(--c)?var(--sp),?transparent?0);
????background-size:?100%?var(--lh);
????color:?transparent?!important;
}
復(fù)制代碼

圖片

獲取原始圖片節(jié)點的寬高,然后使用1像素的base64灰色圖片替換原始節(jié)點的src屬性

renderImg($img)?{
????let?width?=?$img.width()
????let?height?=?$img.height()
????//?一像素灰色圖片
????let?emptyImage?=?"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
????$img.attr("src",?emptyImage);

????$img.css({
????????background:?"#eee",
????????width:?width?+?"px",
????????height:?height?+?"px"
????})
}
復(fù)制代碼

對于包含背景圖片的區(qū)塊而言,只需要將其背景覆蓋成灰色即可。

按鈕、input

使用灰色背景的塊占據(jù)

邊框

替換對應(yīng)邊框的顏色為骨架屏灰色

列表

列表元素是骨架屏中一個比較常見的區(qū)塊,列表元素可以由上面這些區(qū)塊組成,但是為了保證生成規(guī)整的骨架屏,采取的策略是使用移除多余的元素,使用第一個元素克隆占位

function?renderList($dom)?{
????$dom.addClass("sk-list")

????let?$children?=?$dom.children()
????let?$child?=?$children.first()
????let?len?=?$children.length

????//?列表元素子節(jié)點統(tǒng)一,保證頁面骨架整齊
????for?(let?i?=?1;?i?????????$children.eq(i).remove()
????}
????for?(let?i?=?1;?i?????????let?tmp?=?$child.clone(true)
????????$dom.append(tmp)
????}
}
復(fù)制代碼

遍歷DOM樹

當確定了不同類型節(jié)點的處理策略之后,就可以從入口節(jié)點遍歷整個DOM樹執(zhí)行處理方法了

function?preorder($dom)?{
????//?...獲取節(jié)點類型,執(zhí)行相關(guān)策略放啊
????
????//?遍歷子節(jié)點
????$dom.children().each(function?()?{
????????const?$this?=?$(this)
????????preorder($this)
????});
}
復(fù)制代碼

在遍歷期間還需要處理一些特殊情況

  • 不可見的元素及其子節(jié)點應(yīng)該停止遍歷
  • 對于某些節(jié)點而言,可能存在一些定制操作
    • 由用戶指定節(jié)點類型,而不是默認根據(jù)節(jié)點nodeType推斷
    • 忽略某些節(jié)點的處理,如一個ul標簽我們可能并不希望將其轉(zhuǎn)換成列表
    • 直接隱藏節(jié)點,如某些小圖標等,為了保證骨架屏簡潔,可能需要直接隱藏節(jié)點

基于這些場景,引入了skeleton-type的概念,對應(yīng)上面章節(jié)提到的節(jié)點類型,在遍歷時會優(yōu)先讀取節(jié)點上的該屬性值,只有當屬性值不存在時,才會根據(jù)nodeType自行推斷相關(guān)的類型;

  • 對于需要隱藏的節(jié)點,直接指定skeleton-typeignore
  • 對于忽略節(jié)點類型而言,則使用skeleton-exclude-type
?let?type?=?$dom.attr(KEY)?||?getNodeSkeletonType($dom)??//?自動檢測節(jié)點類型,并附上type
let?excludeType?=?$dom.attr(KEY_EXCLUDE)

if?(!excludeType?||?type?!==?excludeType)?{
????let?handlers?=?{
????????[TEXT]:?renderText,
????????[IMAGE]:?renderImg,
????????[BLOCK]:?renderBlock,
????????[BORDER]:?renderBorder,
????????[BUTTON]:?renderButton,
????????[LIST]:?renderList,
????????[BACKGROUND_IMAGE]:?renderBackgroundImage,
????????[INPUT]:?renderInput,
????????[IGNORE]:?renderIgnore
????}

????let?handler?=?handlers[type]
????handler?&&?handler($dom)
}
復(fù)制代碼

這樣相當于暴露了skeleton-typeskeleton-exclude-type兩個HTML屬性,在開發(fā)頁面的時候就可以直接指定骨架屏區(qū)塊類型,方便定制業(yè)務(wù)需要的骨架屏。

當然逐個去配置skeleton-type也會顯得比較繁瑣,在getNodeSkeletonType中會盡可能地推斷并生成比較符合要求的骨架屏效果;此外,基于Chrome擴展程序的工具還暴露了一個配置參數(shù)

?renderSkeleton("body",?{
????ignore:?'',
????selector:?{
????????[key]:?{include:?'',?exclude:?''}
????},
})
復(fù)制代碼

用掘金首頁試一下

原本的效果

如果不過濾的話,因為頂部導(dǎo)航欄使用的是ul,會默認識別成list,導(dǎo)致展示出現(xiàn)問題

自定義配置后的效果

{
????ignore:?['.banner?.label'].join(','),?//?隱藏右側(cè)廣告欄的提示按鈕
????selector:?{
????????block:?{
????????????//?將表單轉(zhuǎn)換成一個BLOCK
????????????include:?['.add-group?.more',?'.search-form'].join(',')
????????},
????????list:?{
????????????//?排除導(dǎo)航欄的ul標簽
????????????exclude:?['.nav-list'].join(',')
????????},
????},
}
復(fù)制代碼

此外,我們也可以只傳入某個節(jié)點而非body的選擇器,這樣就只會生成對應(yīng)節(jié)點的HTML

將骨架屏嵌入應(yīng)用

骨架屏有兩種比較常見的應(yīng)用場景

  • 用于首屏或某個頁面打開時等待數(shù)據(jù)返回時的占位
  • 用于滾動加載等列表頁面占位

接下來研究在這兩種場景下如何嵌入骨架屏

獲取骨架屏代碼

在前面遍歷入口節(jié)點DOM樹渲染骨架屏之后,我們只需要獲取對應(yīng)節(jié)點的HTML代碼即可。由于沒有修改原本布局信息,因此這段HTML代碼再同一個頁面是完全可以展示的。我們要做的就是拿到對應(yīng)的骨架屏HTML代碼。

由于整個操作都是在當前頁面上執(zhí)行的,拿到當前頁面上某個節(jié)點的的html內(nèi)容就變得十分簡單了

  • 通過控制臺,找到節(jié)點然后訪問innerHTML
  • 通過調(diào)試工具Elements面板,然后Copy HTML

上面的方式需要手動去操作,我們可以使用擴展程序在骨架屏渲染結(jié)束之后自動保存對應(yīng)的HTML代碼

//?chromeMsg是自己封裝的一個`chrome.runtime.onMessage`工具
chromeMsg.on("createSkeleton",?(params)?=>?{
????const?{config}?=?params
????//?默認頁面根節(jié)點,可以導(dǎo)出某個dom容器的骨架屏結(jié)構(gòu)
????let?content?=?renderSkeleton(".page",?config)
????//?處理對應(yīng)的骨架屏HTML代碼,這里只是簡單打印,也可以直接保存文件到本地,或者通過HTTP接口調(diào)用某些鉤子服務(wù)完成自動注入等功能
????console.log(content)
})
復(fù)制代碼

整頁應(yīng)用

對于整頁骨架屏,我們需要先使用測試數(shù)據(jù)生成對應(yīng)的骨架屏,然后將得到的HTML放入頁面中即可。

以Vue等單頁項目而言,在整個應(yīng)用初始化之前,頁面上只存在

根節(jié)點,用戶看見的是一片空白,對于這種首屏應(yīng)用,我們可以將得到的骨架屏代碼直接嵌入到根節(jié)點中,這樣當頁面加載至應(yīng)用初始化之前,用戶都能看見完整的骨架屏效果。

對于其他單頁應(yīng)用其他頁面而言,也可以采用類似的原理,等待接口返回前展示骨架屏

<SkeletonFrame?:frame="html"?:loading="isLoading">
????<RealPage>RealPage>
SkeletonFrame>
復(fù)制代碼

比如我們可以封裝一個SkeletonFrame組件,其接口包括

  • frameloading兩個props,表示骨架屏HTML和是否正在加載,當loading為true時展示骨架屏
  • default slot需要真實渲染的頁面組件,當loading為false時展示真正頁面組件

局部骨架屏

對于一些需要持續(xù)加載的數(shù)據(jù),如滾動加載等,可以先獲取對應(yīng)區(qū)塊的骨架屏HTML代碼(不需要整個頁面的骨架屏代碼),然后將其封裝成待展示組件,與上面SkeletonFrame邏輯比較類似

小結(jié)

本文整理了骨架屏的實現(xiàn)原理,然后提供了一種通過Chrome擴展程序生成任意網(wǎng)頁的骨架屏方案,主要包括

  • 將頁面按節(jié)點類型拆分成不同區(qū)塊
  • 支持自定義節(jié)點類型、忽略或隱藏節(jié)點
  • 導(dǎo)出并使用骨架屏HTML代碼

當然,上面只是介紹了大概的實現(xiàn)思路,并給出了一個簡單的Demo,距離實際應(yīng)用還有一些距離,等后面有時間再進一步完善吧。本文所有代碼均放在github上面了,歡迎提PR和issue。

??愛心三連擊

1.看到這里了就點個在看支持下吧,你的點贊,在看是我創(chuàng)作的動力。

2.關(guān)注公眾號程序員成長指北,回復(fù)「1」加入高級前端交流群!「在這里有好多 前端?開發(fā)者,會討論?前端 Node 知識,互相學(xué)習(xí)」!

3.也可添加微信【ikoala520】,一起成長。

“在看轉(zhuǎn)發(fā)”是最大的支持

瀏覽 72
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 超碰自拍97| 污网站免费观看| 久久久午夜| 欧美footjob高跟脚交| 欧美日韩性爱视频| 91免费在线看| 久久大鸡巴| 九九成人精品| 国产一区视频在线| 亚洲AV在线人妻| 欧美日韩性爱视频| 婷婷内射| 无码av一区二区| www.97cao| 在线观看免费黄| 一区二区三区无码视频| 自拍AV在线| 91视频在线免费看| 国产丝袜自拍| 97伊人超碰| 777性爱| 国产精品毛片| 亚洲欧美视频在线观看| 淫淫五月天| 开心色情| 天堂久久久久| 无码人妻AⅤ一区二区三区| www.伊人大香蕉| 欧美中文字幕| 天天干天天日天天干| 国模私拍视频| 最新国产视频| 西西特级WWW444无码| 国产精品久久久久久久久久久久久久久久 | 2025av天堂| 91精品成人| 欧美自拍第一页| 超碰午夜| 天天撸免费视频| 天天操操操| 久久精品国产视频| 色资源在线| 激情无码国产| 欧美伦妇AAAAAA片| 欧美一级A片在线观看| 成人AV午夜福利| 96精品久久久久久久久久| 国产一级a毛一级a毛片视频黑人 | 唐山熟女工棚嗷嗷叫| 日韩欧美午夜成人无码| 大肉大捧一出免费观看| 久久草在线播放| 爆操欧美| 日韩第五页| 在线观看黄色小电影| 波多野结衣网| 美女视频一区二区三区| 亚洲操逼网| 欧美日韩国产精品| 69视频网| 久久无码一区二区三区| 午夜性爱剧场| 国产午夜无码视频在线观看| 97大香蕉视频| 美腿丝袜中文字幕精品| 91中文字幕在线播放| 日韩欧美一区二区在线观看| 99爱在线| 97伊人大香蕉| 一级片在线免费看| A片操逼| 欧美爱爱试看| 激情中文网| 婷婷手机在线| 大香蕉亚洲成人| 久久久精品黄色网址| 大香蕉电影网| 欧美日韩免费| 国产激情久久| 成人三级视频| av无码aV天天aV天天爽| 国产夫妻在线| 激情操逼| 一区二区三区视频在线观看| 久久久国产精品视频| 无码免费一区二区| 国产精品久久久久久久久久久免费看 | 最新激情网站| 在线视频三区| 一区二区中文| 在线免费观看国产视频| av免费观看网站| 国偷自产视频一区二区久| 麻豆午夜福利| 熟妇人妻久久中文字幕| 激情五月天小说网| 久久久无码精品亚洲日韩男男| 日本在线一级片| AV天堂影视在线观看| 久久久成人电影| 日韩无码第一页| 丁香五月天激情| 97人人操| 中文人妻| 成人视频三级| 大鸡巴影院| 最新久欠一区二区免费看| 另类老妇性bbwbbwbbw| 中文字幕高清无码免费视频| 在线观看三级网址| 在线观看免费视频无码| 亚洲vs无码蜜桃少妇| 久久国产精品影院| 熟妇高潮一区二区高潮| 大香蕉综合伊人| 超碰碰碰| 激情国产精品| 亚洲天堂在线免费| 欧美久久久久久久| 欧美成人福利在线观看| 大香蕉色伊人| 9l视频自拍蝌蚪9l成人| 99热在线观看免费精品| 东方a在线| 黑人狂躁女人高潮视频| 国产日韩欧美视频| 亚洲AV激情无码专区在线播放| 欧美日韩三区| 国产成人精品三级麻豆| 午夜国产码网站码| 在线播放亚洲| 人人看人人摸| 看90后操B| 丁香五月天婷婷久久| 亚洲高清无码在线观看视频 | 西西4444WWW无视频| 黄色电影一区二区三区| 永久免费黄色视频网站| av老鸭窝| 国产色拍| 日韩精品视频一区二区三区| 日韩欧美精品| 色综合天天综合网国产成人网| 欧美黄色毛片| 伊人激情五月天| 午夜高清无码| 天天射视频| 青青操逼| 午夜精品久久久久久久久久久久| 日韩AV无码专区亚洲AV紧身裤| 欧美va视频| 三级无码在线播放| 老湿机福利院| 亚洲AV中文无码| 任我操在线视频| 狠狠撸狠狠操| 人人爽人人干| 九九色综合| 丝袜美女足交| 国产一区免费视频| 人人妻人人爱人人| 狠狠色噜噜狠狠狠7777| 成人电影久久久| 美女黄色免费网站| 99视频热| 欧美精产国品一二三区| 欧美日韩视频一区二区三区| 无码不卡视频在线| 欧美wwwww| AV在线四季综合网站| 黄色永久网站| 搡中国东北老女人视频| 亚洲性爱中文字幕| 精品视频一区二区三区四区| 四虎激情影院| 成年人免费公开视频| 大香蕉com| 欧美1区2区| 99精品视频免费看| 99色| 日日夜夜精品| 微拍福利一区二区| www.豆花社区成人| 日韩精品视频一区二区三区| ppypp电影频道| 国产成人小视频| 在线视频中文字幕| 任你爽在线视频| 九九re| 中文字幕日韩一级| 日韩精品一区二区三区中文在线 | 色资源在线观看| 黄片视频在线| 99视频久久| 精品香蕉视频| 玩弄大乳乳妾高潮乳喷视频| 大香伊人国产| 色先锋资源站| 日韩婬乱片A片AAA真人视频 | 欧美一级特黄A片免费看| 日本免费黄色电影| 久久精彩偷拍视频| 日韩AV免费在线播放| 黄色一级片在线| 超碰福利在线| 青草青草| 亚洲天堂在线视频| 亚洲国产精| 亚洲一级黄色大片| 综合色婷婷一区二区亚洲欧美国产| 无码黄色片| 中文字幕av在线| 97色色婷婷五月天| 九九视频网| 性欧美69| A片视频网站| 99成人乱码一区二区三区在线| 色色色五月婷婷| 久久久高清无码| 熟女18p| 成人无码www在线看免费| 高清av免费| 在线天堂a| 天天cao| 欧美视频精品| 日韩人妻无码专区一区二区 | 男女www| 男人天堂手机视频| 99色热视频| 狠狠躁日日躁夜夜躁A片小说免费 色综合久久久无码中文字幕999 | AV香蕉| 狠狠色狠狠干| 免费在线观看A片| 综合成人在线| 爱搞搞搞搞| 亚洲视频免费在线播放| 久久久精品国产| 中文无码人妻少妇| 爱搞搞搞搞| 蜜桃视频在线入口www| 日韩成人中文字幕| 国产精品无码毛片| 日韩在线观看av| 婷婷内射| 四虎网站| 凸凹翔田千里无码| 亚洲二区在线| 人人妻人人爽人人操| 欧洲黑人成人A版免费视频| 91嫖妓站街埯店老熟女| 国产乱子伦精品免费,| 一区二区无码在线| 精品乱子伦一区二区三区毛| 亚洲一级黄色大片| aaa在线| 日韩欧美在线观看| 成人黃色A片免费看| 成人综合网站| 无码一道本| 日韩欧美中文在线观看| 日韩第1页| 精品天堂| 中文字幕在线观看一区二区三区| 色视频免费观看| 99国产精品免费视频观看8| 无码高清在线播放| 青青成人视频| 91福利在线视频| 亚洲日韩一区二区| 亚洲天堂美女| 熟女人妻视频| 青青伊人网| 免费+无码+精品| 我要操影院| 无码av在线播放| 北条麻妃视频在线播放| 亚洲无码久久精品| 色呦呦中文字幕| 久久91人妻无码精品蜜桃HD| 老太老熟女城中层露脸60| 日韩精品一二三| 婷婷情色五月| 国产精品码ls字幕影视| 一级日逼片| 黄色大片AV| 美日韩AV| 天天综合国产| 99久久综合九九| 日韩AV乱伦| 91亚洲视频在线观看| 热久久综合网站| 性爱AV在线| 精品国产99| 亚洲一区二区三区免费视频| 日韩亚洲天堂| 超碰自拍| 一区二区三区Av| 亚洲图片一区| 熟女人妻一区二区三区| 欧美三级理论片| 手机免费AV| 成人影片在线观看18| 内射免费网站| 无码少妇| 狠狠色五月| 91爱爱网| 波多野结衣无码NET,AV| 99久久99久久精品免费看小说。| 久久在线视频| 蜜桃免费| www亚洲无码| 欧美又粗又大AAA片| 国产精品福利导航| av在线免费播放| 超碰av电影| 成人在线免费网站| 国产一级a毛一级a做免费的视频l 精品国产免费观看久久久_久久天天 | 亚洲中文字幕人妻。| 国产在线观看不卡| 波多野结衣一区| 午夜福利老司机| 天天色情| 插菊花综合网亚洲| a级网站| 成人黄色网| 亚洲黄色Av| 国产在线成人| 91伊人久热精品| 中文字幕不卡在线| 污污污污污www网站免费民国| 天堂va欧美va亚洲va在线 | 国产A片网站| 人人做人人爱人人做人人乐的意思| 国产精品一区av| 熟妇人妻中文AV| 吴梦梦一区二区在线观看| JULIA超乳JULIA无码| 欧美亚洲综合手机在线| 亚洲操逼电影| 亚洲无码三级| 成人先锋影音| 不卡二区| www.午夜福利| 91麻豆精品传媒国产| 欧洲精品在线免费观看| 色综合久久天天综合网| 婷婷成人五月天| 精品亚洲无码视频| 亚洲无码高清在线观看视频| 久久精品无码视频| 人人干人人看| 国产精品久久免费| 国产熟妇搡BBBB搡BBBB毛片| 午夜8050| 少妇搡BBBB搡BBBB毛多多| 色片免费| 三级小说| 人人爱人人操人人干| 成人网站在线观看视频| 欧亚一区二区| 今天成全在线观看高清| 波多野结衣福利视频| 久久久久久久免费视频| 欧美男女交配视频| 人妖毛片| 俺去也av| 日韩高清一区二区| 特一级黄色| 久久无码一区二区三区| 国产无码做爱视频| 久久亚洲成人| 影音先锋91久久网| 毛片一区二区三区| 亚洲日韩欧美色图| 搡BBB| 探花极品无套大学生| 中文字幕有码在线| 亚洲乱伦小说网| 国产婷婷| 精品人妻午夜| 91愛爱| 色婷婷视频网站| 好吊AV| 无码精品久久| 欧美福利电影| 91丨国产丨精品丨丝袜| 四虎无码视频| 亚洲性爱视频在线观看| 亚洲色图五月天| av女人天堂| 日韩成人免费在线观看| 国产一区二区三区在线| 国产无码AV在线| 欧美亚洲色色网视频| 欧美日韩精品在线视频| 中文无码字幕视频| 亚洲综合视频在线| 少妇性受XXXX黑人XYX性爽| 国产精品成人免费精品自在线观看 | 淫色综合| 亚洲成人天堂| 午夜操逼逼| 偷拍综合| 国产青草视频| 日本特级黄色毛片| 久久第一页| 国产伦子伦一级A片免费看老牛 | 无码人妻AV一区| 特黄网站| 日韩三级片在线视频| 日韩无码人妻久久一区二区三区 | 国产AV无码成人精品毛片| 婷婷五月天激情电影| 欧美狠狠干| 91久热| 亚洲国产成人在线| www中文字幕| 久久都是精品| 成人在线视频观看| 婷婷丁香六月天| 熟女一区二区三区| 天美精东蜜桃91| 国产精品久免费的黄网站| 人人插人人| 日木毛片| 色老板免费精品无码免费视频| 操日韩| 一级黄片免费视频| 热热色| 国产丝袜在线| 亚洲AV无码成人精品区东京热| 黄色成人网站免费在线观看| 国产精品久久久久久久久借妻| 五月丁香在线视频| 日本黄色电影在线| av无码导航| 五月天激情影院| 日韩无码av电影| 特黄特黄免费看| 日韩黄色在线| 先锋AV资源站| 影音先锋成人资源| 日皮在线观看| 亚洲三级无码在线观看| 九九九色| 欧美在线色| 五月天婷婷色播| 1级毛片| 日韩无码AV一区二区三区| 九九九成人视频| 久草视频观看| 亚洲第一黄色视频| 成人影视亚洲| 国产一级A片久久久免费看快餐| 人妻熟女在线视频| 亚洲精品一区二区三区在线观看 | 久草手机在线视频| 久久婷婷成人综合色怡春院| 国产喷潮| 久久综合五月| 亚洲少妇熟女| 中文在线最新版天堂8| 日本无码视频在线观看| 日本一级黄色A片| 色综合五月| 第一福利视频导航| 午夜探花在线观看| 久久婷婷婷| 天堂中文在线视频| 黄色电影天堂| 日本少妇高潮喷水XXXXXXX| 亚洲中文字幕AV| 亚洲AV免费电影| 欧美老妇BBBBBBBBB| 中文字幕av在线观看| 久久精品91| 97亚洲国产| 日本三级网站| 日本成人一区| 中文字幕日本成人| aaa免费| 高清av在线| 亚洲另类自拍| 思思精品视频| 大香蕉国产在线| 亚洲福利在线观看视频| 年轻女教师高潮2| 69久久久久久久久久| 中文字幕免费看| www.97av| 婷婷五月激情中文字幕| 中文字幕在线观看视频www| 熟女综合| 九九九九九九精品视频| 翔田千里被操120分钟| A片视频免费看| 亚洲免费黄| 精品免费黄色视频| 国产黄色免费网站| 欧美性综合| 日韩永久免费| 丁香婷婷五月综合影院| 人人看人人摸人人| 欧美夜夜骑| 久草综合网| 成人AV免费| 中文字幕AV在线观看| 一级黄色在线| 亚洲中文无码AV在线| 国产精品久久AV电影| 国产AV一区二区三区精品| 高清无码第一页| 无码在线视频播放| 自慰喷水流白浆中文字幕| 91av免费观看| 五月丁香激情综合| 无码秘蜜桃一区二区三区| 懂色av一区蜜桃| 波多野结衣AV在线播放| 高清无码视频观看| 伊人成人免费视频| 国产精选在线| 男女av| 中文字幕日韩av| 亚洲高清无码网站| 黄色性爱网址| 一本大道香蕉av久久精东影业| 中文字幕在线不卡| 91毛片在线观看| 人成在线观看| 亚洲无人禁区| 大香蕉国产精品| 欧美日韩日逼| 懂色AV一区二区三区国产中文在线| 操逼手机视频| 99美女精品视频| 在线看a片| 欧美成人激情视频| 熟女在线视频| www日韩欧美| 最新中文字幕观看| 国产精品一二三区| 色婷婷在线免费视频| 欧美婬乱片A片AAA毛片地址| 91欧美精品成人AAA片| 一级国产黄色视频| 天天干天天操| 色欲av伊人久久大香线蕉影院| 亚洲狼友视频| 成人18视频| 水多多成人网站A片| 亚洲有码中文字幕| 黄色av免费| 不卡视频一区二区| 国产不卡在线视频| 黄色大片视频| 亚洲三级无码视频| 亚洲133| 高h视频在线观看| av一区二区三区四区| 欧亚免费视频| 国产视频无码在线| 青春草在线免费观看| 亚洲欧洲久久电影| 男人的天堂在线视频| 97香蕉久久国产超碰青草专区| 操日本少妇| 韩国无码一区二区| 撸撸综合网| 丁香五月天在线播放| 欧美九九九| 最近中文字幕免费MV第一季歌词怀孕 | 一区二区三区日本| 国产3p绿帽骚妻视频| 午夜av在线播放| 日韩大香蕉| 国产精品久久久久久久久久王安宇 | 五月天婷婷视频| 综合在线视频| 人人射在线| 粉嫩小泬BBBBBB免费看| 你懂的在线免费观看| 日韩欧美一级A片| 国产欧美综合在线三区| 亚洲一二三| 在线超碰| 人人综合| 波多野结衣无码一区二区| 天天爽天天摸| 国产理论在线| 一级免费爱爱视频| 国产AV一区二区三区四区五区| 蜜桃91精品秘入口| 唐山熟女工棚嗷嗷叫| 自拍偷拍成人视频| 国产精品免费观看视频| A片免费观看视频| 青娱乐网站| TheAV精尽人亡av| 黄色A片网址| 婷婷五月天在线电影| 手机看片午夜福利网| 六月丁香五月婷婷| 青青网站| 亚洲成人av在线观看| 色婷婷日韩精品一区二区三区| 91狠狠色丁香婷婷综合久久精品 | 强伦人妻一区二区三区视频| 婷婷丁香五月在线| 一级性生活视频| 91迷奸| 黑人操逼| 色噜噜噜| 久久爆乳一区二区三区| 中文在线观看视频| 五月天久久婷婷| 久久精品99久久久久久| 99久久99久久精品免费看小说。| 欧美日韩一级毛| 天堂中文在线播放| 懂色AV无码中字幕一区| 在线播放毛片| 欧美一级特黄AAAAAA片在线视频 | 各种妇女撒尿mm毛免费网站| JULIA超乳JULIA无码| 狠狠欧美| 久久婷婷国产麻豆91天堂| 日韩美女久久| 亚洲阿v天堂| 北岛玲丝袜办公室高跟| 亚洲黄片在线| 在线免费观看国产视频| 中国少妇xxx| 日本a一级片| 欧美美女视频网站| 色呦呦一欧美| 日韩成人精品| 99国产在线| 黄色免费网站在线观看| 亚洲视频网| 日韩无码小电影| 污网站免费在线观看| 在线无码视频播放| 欧美色图综合网| 亚洲高清无码在线播放| 欧美不卡在线视频| 超碰91在线| 亚洲天堂在线免费观看视频| 日日夜夜天天| 91人妻人人澡人人爽人人精| 久久第一页| 亚洲一区二区精品| 九九九九色| 国产色情视频在线观看| 刘玥一区二区三区| www.豆花视频成人版| 河南熟妇搡BBBB搡BBBB| 粗长哭叫打桩H体育生| 啪啪啪免费视频| 日本男人天堂| 三级网站网址| 国产精品99视频| 天天干妹子| 骚逼综合网| 91香蕉视频免费在线观看| 艹逼在线观看| 精品无码人妻一区二区三区| 波多野结衣高清视频| 五月天婷婷激情视频| 欧美操b视频| 熟女AV888| a片视频网站| 狠狠av| 久久久久无码国产精品不卡| 七六十路の高齢熟妇无码| 亚洲女人视频| 中文字幕高清无码在线观看| 蜜臀久久99精品久久久兰草影视| 精品欧美一区二区三区久久久| 亚洲无套内射| 91丨九色丨老农村| 乱伦网址| 婷婷五月天成人电影| 国产婷婷色一区二区在线观看| 欧美成人三级在线观看| 欧美午夜网站| 欧美日韩高清在线| 猫咪成人网站| 亚洲AV成人片无码网站| 在线免费看黄色| 天天操天天操| 日韩欧美视频一区国产欧美在线| 中文无码久久| 性猛交╳XXX乱大交| 一区二区三区小视频| 五月天黄色电影网站| 国产91高跟丝袜| 久久先锋| 久久艹伊人| 无码A级片| 五月丁香激情综合| 无码视频韩国| 51av在线| 韩日一区二区| 久久精品三级片| 精品人妻无码| 无码人妻AⅤ一区二区三区A片一| 69久久久久久久久久| 国产综合色婷婷精品久久| 广西少妇BBwBBwBBw| 大香蕉99热| 蜜桃人妻无码AV天堂二区| 四季AV之日韩人妻无码| 国产又大又粗又黄| 簧片在线免费观看| 国产一级操逼视频| 北条麻妃人妻中文无码| 中文字幕中文字幕| www黄片| 亚洲男人综合| 免费无码| 天堂成人av| 一本久道无码| 久久久久久五月天| 欧美日韩免费在线| 授乳奶水x88MAV| 男人天堂无码| 大香蕉在线电影| 人人看人人干| 久久丁香五月天| 欧美成人乱码一区二区三区| 成人免费爱爱视频| japanese在线观看| 亚洲第一视频在线观看| 色哟哟无码| 韩国无码一区二区三区| 影音先锋三级片| 日韩小电影| 亚洲综合免费观看高清完整| 国产在线观看黄| 国产日韩一区二区三免费高清| 毛片网站视频| 久热在线精品视频| 成人激情在线视频| 性无码一区二区三区| 亚洲成人黄色| 成人社区视频| 天堂综合网久久| 69福利| 强开小嫩苞一区二区三区网站| 在线免费看黄色视频| 色综合久| 免费黄色在线视频| 东京热久久综合色五月老师 | 69AV免费视频| 国产中文字幕av| 久久涩| 偷拍视频网站| 日韩欧美在线播放| 好吊视频一区二区三区红桃视频you| 国产成人精品一区二区三区四区| 日本精品视频一区二区| 超碰在线精品| 强伦轩一区二区三区四区| 亚洲AV免费在线| 91视频网站| 超碰毛片| 欧美亚洲精品在线| 男人的天堂手机在线| 色五月婷婷综合| 天堂成人| 黄色视频在线免费观看高清视频| 俺去骚| 国产一区二区三区免费观看| 高清无码视频18| 日韩一级在线播放| 五月婷婷激情| 丰满少妇一级片| 香蕉福利网| 午夜神马影院| 黄片久久久| 国产福利av| 大香蕉亚洲成人| 欧美日韩中文视频| 中文字幕第11页| 嫩BBB槡BBBB槡BBBB撒尿| 成人在线视频免费| 国产和日韩中文字幕| 亚洲AV无码成人精品区www | 免费日韩黄色电影| 国产传媒_色哟哟| 国产99re| 人操人人| 成年人视频在线观看免费| 97综合视频| 中文字幕成人视频| 99在线视频免费观看| 成人a级网站| 狼人综合视频| 翔田千里91| 国产性爱精品| 肏屄网站| 国产亚洲99久久精品| 色先锋资源站| 手机在线观看AV| 久久成人免费| 女BBBBBB女BBB| 日韩欧美大香蕉| 国产视频在线免费观看| 伊人精品视频| 久草福利| 人人操人人网站| 少妇喷水视频| 久久久久亚洲AV成人网人人软件| 国产91在线视频| 国产精品久久久久久最猛| 色色五月天网站| 日韩黄色无码视频| 91精品久久久久久久| 国产一级a毛片| 五月大香蕉| 久久精品一区二区三区蜜芽的特点| 一区免费视频| 成人无码高清在线观看| 日日搔AV一区二区三区| 久久99久久99精品免视看婷婷| 国产亚洲色婷婷久久99精品91| 西西444WWW无码视频软件| 91人妻人人澡人人爽人人玩 | 亚洲日本中文字幕在线| 午夜天堂精品久久久久9| 蜜桃传媒一区二区亚洲| 91无码| www.jiujiujiu| 亚洲成人综合网站| 人妻视频网站| 亚洲国产成人va| 日本黄色片视频| 懂色av粉嫩av蜜臀av| 久久成人免费视频| 国产Av资源| 大香蕉啪啪视频| 日韩操b| 99热6| 亚洲免费黄| 黄色一级片免费看| 国产剧情一区二区av在线观看| 免费的黄色视频在线观看| 三区在线| 91传媒在线观看| 亚洲无码一区二区三区蜜桃| 黄色激情五月| 欧美激情网址| 中文字幕免| 隸則av| 91在线无码精品秘蜜桃入口| 国产美女精品久久AV爽| 69成人| 亚洲精品无码中文字幕| 中文字幕无码在线| 热久久久久久| 日韩午夜av| 成人精品鲁一鲁一区二区| 日韩Va| 成人精品一区二区三区中文字幕| 欧美精品久久久久久| 精品国产午夜福利| 无码一区二区久久| 天天干天天干天天日| 91精品国产一区| 天堂va欧美va亚洲va在线 | 88在线无码精品秘入口九色| 欧美一二| 国产一级a毛一级a做免费的视频l 精品国产免费观看久久久_久久天天 | 国产绿奴09-01| 在线视频你懂| 日韩特级片| 欧美日韩一区二区三区在线电影| 国产精品av在线播放| 91探花在线观看| 99日韩无码| 黄色视频免费国产| av中文在线观看| 天天干天天色天天射| 欧洲第一无人区观看| 97资源在线| 337P大胆粉嫩银噜噜噜| 日本综合视频| 国产一级a| 国产一区二区在线播放| 四虎精品成人无码A片| 特级丰满少妇免费观看| 国产人体视频| 亚洲专区视频| 成人黄片在线免费观看| 国产美女一级真毛片酒店| 国产熟女视频| 亚洲操逼AV| 美女肏| 亚洲精品天堂无码AV片|