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

在Vue中創(chuàng)建可重用的 Transition

開發(fā) 前端
如果我們可以將它們封裝到組件中,并在多個(gè)項(xiàng)目中簡單地重用它們,結(jié)果會(huì)怎樣呢?我們將介紹幾種定義transition的方法,并深入研究如何使它們真正可重用。

本文轉(zhuǎn)載自微信公眾號(hào)「大遷世界」,轉(zhuǎn)載本文請(qǐng)聯(lián)系大遷世界公眾號(hào)。

Vue.js中的transition確實(shí)很棒。毫無疑問,它們可以非常輕松地讓應(yīng)用程序栩栩如生,但是通常必須在每個(gè)項(xiàng)目中從頭開始編寫它們,甚至還需要引入animate.css之類的CSS庫來使它們功能更強(qiáng)大。

如果我們可以將它們封裝到組件中,并在多個(gè)項(xiàng)目中簡單地重用它們,結(jié)果會(huì)怎樣呢?我們將介紹幾種定義transition的方法,并深入研究如何使它們真正可重用。

[[328523]]

原始transition組件和CSS

定義transition的最簡單方法是使用transition·或transition-group組件。這需要為transition定義一個(gè)name`和一些CSS。

  1. <template> 
  2.   <div id="app"> 
  3.     <button v-on:click="show = !show"> 
  4.       Toggle 
  5.     </button> 
  6.     <transition name="fade"> 
  7.       <p v-if="show">hello</p> 
  8.     </transition> 
  9.   </div> 
  10. </template> 
  11. <script> 
  12. export default { 
  13.   name: "App", 
  14.   data() { 
  15.     return { 
  16.       show: true 
  17.     }; 
  18.   } 
  19. }; 
  20. </script> 
  21. <style> 
  22. .fade-enter-active, 
  23. .fade-leave-active { 
  24.   transition: opacity 0.3s; 
  25. .fade-enter, 
  26. .fade-leave-to { 
  27.   opacity: 0; 
  28. </style> 

 

看起來容易,對(duì)吧?然而,這種方法有一個(gè)問題。我們不能在另一個(gè)項(xiàng)目中真正重用這個(gè)transition。

封裝transition組件

如果我們將前面的邏輯封裝到一個(gè)組件中,并將其用作一個(gè)組件,結(jié)果會(huì)怎樣呢?

  1. // FadeTransition.vue 
  2. <template> 
  3.   <transition name="fade"> 
  4.     <slot></slot> 
  5.   </transition> 
  6. </template> 
  7. <script> 
  8. export default { 
  9.    
  10. }; 
  11. </script> 
  12. <style> 
  13. .fade-enter-active, 
  14. .fade-leave-active { 
  15.   transition: opacity 0.3s; 
  16. .fade-enter, 
  17. .fade-leave-to { 
  18.   opacity: 0; 
  19. </style> 
  20.  
  21. // App.vue 
  22.  
  23. <template> 
  24.   <div id="app"> 
  25.     <button v-on:click="show = !show"> 
  26.       Toggle transition 
  27.     </button> 
  28.     <fade-transition> 
  29.       <div v-if="show" class="box"></div> 
  30.     </fade-transition> 
  31.   </div> 
  32. </template> 
  33. <script>...</script> 
  34. <style>...</style> 

通過在transition組件中提供一個(gè)slot,我們幾乎可以像使用基本transition組件一樣使用它。這比前面的例子稍微好一點(diǎn),但是如果我們想要傳遞其他特定于transition的prop,比如mode或者一些hook,該怎么辦呢

封裝的包裝器transition組件

幸運(yùn)的是,Vue 中有一個(gè)功能,使我們可以將用戶指定的所有額外props和監(jiān)聽器傳遞給我們的內(nèi)部標(biāo)簽/組件。如果你還不知道,則可以通過$attrs訪問額外傳遞的 props,并將它們與v-bind結(jié)合使用以將它們綁定為props。這同樣適用于通過$listeners進(jìn)行的事件,并通過v-on對(duì)其進(jìn)行應(yīng)用。

  1. // FadeTransition.vue 
  2.  
  3. <template> 
  4.   <transition name="fade" v-bind="$attrs" v-on="$listeners"> 
  5.     <slot></slot> 
  6.   </transition> 
  7. </template> 
  8. <script> 
  9. export default {}; 
  10. </script> 
  11. <style> 
  12. .fade-enter-active, 
  13. .fade-leave-active { 
  14.   transition: opacity 0.3s; 
  15. .fade-enter, 
  16. .fade-leave-to { 
  17.   opacity: 0; 
  18. </style> 
  19.  
  20. // App.vue 
  21.  
  22. ... 
  23.  
  24. <fade-transition mode="out-in"> 
  25.   <div key="blue" v-if="show" class="box"></div> 
  26.   <div key="red" v-else class="red-box"></div> 
  27. </fade-transition> 
  28.  
  29. ... 
 
 

「完整事例地址:https://codesandbox.io/s/yjl1wjyoy1?from-embed」

現(xiàn)在,我們可以傳遞普通transition組件可以接受的任何事件和支持,這使得我們的組件更加可重用。但為什么不更進(jìn)一步,增加通過 prop 輕松定制持續(xù)時(shí)間的可能性。

顯式持續(xù)時(shí)間 prop

Vue 為transition組件提供了一個(gè)duration prop,然而,它是為更復(fù)雜的動(dòng)畫鏈接而設(shè)計(jì)的,它幫助 Vue 正確地將它們鏈接在一起。

在我們的案例中,我們真正需要的是通過組件prop控制CSS animation/transition。我們可以通過不在CSS中指定顯式的CSS動(dòng)畫持續(xù)時(shí)間,而是將其作為樣式來實(shí)現(xiàn)。我們可以借助transition hook來做到這一點(diǎn),該transition hook與組件生命周期 hook 非常相似,但是它們?cè)谶^渡所需元素之前和之后被調(diào)用。讓我們看看效果如何。

  1. // FadeTransition.vue 
  2.  
  3. <template> 
  4.   <transition name="fade" 
  5.               enter-active-class="fadeIn" 
  6.               leave-active-class="fadeOut" 
  7.               v-bind="$attrs" 
  8.               v-on="hooks"> 
  9.       <slot></slot> 
  10.   </transition> 
  11. </template> 
  12. <script> 
  13. export default { 
  14.   props: { 
  15.     duration: { 
  16.       type: Number, 
  17.       default: 300 
  18.     } 
  19.   }, 
  20.   computed: { 
  21.     hooks() { 
  22.       return { 
  23.         beforeEnter: this.setDuration, 
  24.         afterEnter: this.cleanUpDuration, 
  25.         beforeLeave: this.setDuration, 
  26.         afterLeave: this.cleanUpDuration, 
  27.         ...this.$listeners 
  28.       }; 
  29.     } 
  30.   }, 
  31.   methods: { 
  32.     setDuration(el) { 
  33.       el.style.animationDuration = `${this.duration}ms`; 
  34.     }, 
  35.     cleanUpDuration(el) { 
  36.       el.style.animationDuration = ""
  37.     } 
  38.   } 
  39. }; 
  40. </script> 
  41. <style> 
  42. @keyframes fadeIn { 
  43.   from { 
  44.     opacity: 0; 
  45.   } 
  46.   to { 
  47.     opacity: 1; 
  48.   } 
  49. .fadeIn { 
  50.   animation-name: fadeIn; 
  51. @keyframes fadeOut { 
  52.   from { 
  53.     opacity: 1; 
  54.   } 
  55.   to { 
  56.     opacity: 0; 
  57.   } 
  58. .fadeOut { 
  59.   animation-name: fadeOut; 
  60. </style> 

 

「完整事例地址:https://codesandbox.io/s/j4qnjvmwz9?from-embed」

現(xiàn)在,我們可以控制實(shí)際的可見過渡時(shí)間,這使我們可重用的過渡變得靈活且易于使用。但是,如何過渡多個(gè)元素(如列表項(xiàng))呢?

Transition group 支持

你想到的最直接的方法可能是創(chuàng)建一個(gè)新組件,比如fade-transition-group,然后將當(dāng)前transition標(biāo)簽替換為transition-group標(biāo)簽,以實(shí)現(xiàn) group transition。如果我們可以在相同的組件中這樣做,并公開一個(gè)將切換到transition-group實(shí)現(xiàn)的group prop,那會(huì)怎么樣呢?幸運(yùn)的是,我們可以通過render函數(shù)或component和is屬性來實(shí)現(xiàn)這一點(diǎn)。

  1. // FadeTransition.vue 
  2.  
  3. <template> 
  4.   <component :is="type" 
  5.              :tag="tag" 
  6.              enter-active-class="fadeIn" 
  7.              leave-active-class="fadeOut" 
  8.              move-class="fade-move" 
  9.              v-bind="$attrs" 
  10.              v-on="hooks"> 
  11.       <slot></slot> 
  12.   </component> 
  13. </template> 
  14. <script> 
  15. export default { 
  16.   props: { 
  17.     duration: { 
  18.       type: Number, 
  19.       default: 300 
  20.     }, 
  21.     group: { 
  22.       type: Boolean, 
  23.       default: false 
  24.     }, 
  25.     tag: { 
  26.       type: String, 
  27.       default: "div" 
  28.     } 
  29.   }, 
  30.   computed: { 
  31.     type() { 
  32.       return this.group ? "transition-group" : "transition"; 
  33.     }, 
  34.     hooks() { 
  35.       return { 
  36.         beforeEnter: this.setDuration, 
  37.         afterEnter: this.cleanUpDuration, 
  38.         beforeLeave: this.setDuration, 
  39.         afterLeave: this.cleanUpDuration, 
  40.         leave: this.setAbsolutePosition, 
  41.         ...this.$listeners 
  42.       }; 
  43.     } 
  44.   }, 
  45.   methods: { 
  46.     setDuration(el) { 
  47.       el.style.animationDuration = `${this.duration}ms`; 
  48.     }, 
  49.     cleanUpDuration(el) { 
  50.       el.style.animationDuration = ""
  51.     }, 
  52.     setAbsolutePosition(el) { 
  53.       if (this.group) { 
  54.         el.style.position = "absolute"
  55.       } 
  56.     } 
  57.   } 
  58. }; 
  59. </script> 
  60. <style> 
  61. @keyframes fadeIn { 
  62.   from { 
  63.     opacity: 0; 
  64.   } 
  65.   to { 
  66.     opacity: 1; 
  67.   } 
  68. .fadeIn { 
  69.   animation-name: fadeIn; 
  70. @keyframes fadeOut { 
  71.   from { 
  72.     opacity: 1; 
  73.   } 
  74.   to { 
  75.     opacity: 0; 
  76.   } 
  77. .fadeOut { 
  78.   animation-name: fadeOut; 
  79. .fade-move { 
  80.   transition: transform 0.3s ease-out; 
  81. </style> 
  82.  
  83. // App.vue 
  84.  
  85. ... 
  86.  
  87. <div class="box-wrapper"> 
  88.   <fade-transition group :duration="300"> 
  89.     <div class="box" 
  90.          v-for="(item, index) in list" 
  91.          @click="remove(index)" 
  92.          :key="item" 
  93.      > 
  94.     </div> 
  95.   </fade-transition> 
  96. </div> 
  97.  
  98. ... 

「完整事例地址:https://codesandbox.io/s/pk9r5j2257?from-embed」

 

[文檔中][6]介紹了一個(gè)帶有transition-group元素的警告。我們基本上必須在元素離開時(shí)將每個(gè)項(xiàng)目的定位設(shè)置為absolute,以實(shí)現(xiàn)其他項(xiàng)目的平滑移動(dòng)動(dòng)畫。我們也必須添加一個(gè)move-class并手動(dòng)指定過渡持續(xù)時(shí)間,因?yàn)闆]有用于移動(dòng)的 JS hook。我們將這些調(diào)整添加到我們的上一個(gè)示例中。

再做一些調(diào)整,通過在mixin中提取 JS 邏輯,我們可以將其應(yīng)用于輕松創(chuàng)建新的transition組件,只需將其放入下一個(gè)項(xiàng)目中即可。

Vue Transition

在此之前描述的所有內(nèi)容基本上都是這個(gè)小型 [transition 集合][7]所包含的內(nèi)容。它有 10 個(gè)封裝的transition組件,每個(gè)約1kb(縮小)。我認(rèn)為它非常方便,可以輕松地在不同的項(xiàng)目中使用。你可以試一試:)

總結(jié)

我們從一個(gè)基本的過渡示例開始,并最終通過可調(diào)整的持續(xù)時(shí)間和transition-group支持來創(chuàng)建可重用的過渡組件。我們可以使用這些技巧根據(jù)并根據(jù)自身的需求創(chuàng)建自己的過渡組件。希望讀者從本文中學(xué)到了一些知識(shí),并且可以幫助你們建立功能更好的過渡組件。

 

 

 

 

 

責(zé)任編輯:趙寧寧 來源: 大遷世界
相關(guān)推薦

2023-10-17 07:23:00

Vue組件代碼

2024-06-13 10:11:33

WPFCommand命令模式

2024-01-03 08:00:00

Java軟件開發(fā)代碼

2011-07-21 13:24:14

java

2023-11-08 13:55:27

2011-04-12 16:01:04

MySQL查詢編寫

2018-11-08 15:50:18

前端Javascript重用性

2010-06-09 09:15:58

JSF 2Ajax組件

2013-04-23 09:14:22

可重用云工具Java安全框架云中間件

2013-04-23 09:24:51

2013-12-04 14:19:40

JavaScript代碼重用

2011-07-12 15:45:29

java

2009-06-23 14:18:00

Java代碼可重用性

2023-06-15 09:02:14

Python模塊和包

2021-06-26 06:29:14

Vue 2Vue 3開發(fā)

2022-07-05 09:27:35

Iframe前端平臺(tái)架構(gòu)

2021-08-28 10:06:29

VueJavascript應(yīng)用

2020-11-02 11:33:52

ReactVue應(yīng)用

2024-06-28 01:13:59

工具C#代碼

2020-10-30 12:44:05

USBLinux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产精品亚洲第一区在线暖暖韩国| 不卡的av影片| 麻豆免费看一区二区三区| 国产亚洲免费的视频看| www.涩涩涩| 国产免费av高清在线| 久久国产欧美日韩精品| 欧美成aaa人片在线观看蜜臀| 成人激情综合网| 91大神福利视频| 激情视频亚洲| 亚洲va欧美va人人爽| 成人免费91在线看| 尤物视频最新网址| 成人国产一区| 亚洲午夜成aⅴ人片| 欧美一区二区视频17c| 91精品一区二区三区蜜桃| xvideos.蜜桃一区二区| 99视频国产精品| 日韩av三级在线观看| 精品国产视频在线观看| 色天下一区二区三区| 欧美日韩成人在线| 成人午夜免费在线| 日本中文在线| 国产.欧美.日韩| 国产精品成人国产乱一区| √天堂中文官网8在线| 亚洲va久久| 欧美日韩一区二区不卡| 欧美 亚洲 视频| 国产精品久久久久一区二区国产| 精品一区二区影视| 亚洲精品福利视频| 中文字幕成人在线视频| 黄色激情在线播放| 亚洲欧美怡红院| 国产精品国产自产拍高清av水多 | 欧美激情中文字幕| av噜噜色噜噜久久| 中文字幕人妻一区二区三区视频| 国产福利一区二区精品秒拍| 在线观看一区二区视频| 国产精品69久久久| 免费观看久久久久| hitomi一区二区三区精品| 国产精品久久久久影院日本| 九热这里只有精品| 蜜桃国内精品久久久久软件9| 一炮成瘾1v1高h| 国产精品久久久久av福利动漫| 亚洲一二三专区| 欧美激情理论| 国产在线你懂得| 亚洲欧美在线不卡| 91美女福利视频高清| 日本亚洲欧美三级| 瑟瑟视频在线观看| 欧美黑人巨大videos精品| 欧美日韩国产精选| 欧美,日韩,国产在线| 素人av在线| 国产人妖乱国产精品人妖| 蜜桃视频在线观看91| 免费观看a视频| 国产精品88av| 亚洲一区二区在线| 国产特级黄色片| 久久99国产精品免费网站| 欧美一区二区三区精品电影| 日本网站在线播放| 9色国产精品| 久久久久久中文| 国产精彩视频在线观看| 精品福利av| 97在线免费视频| 欧美黑人一区二区| 日韩精品每日更新| 国产成人啪精品视频免费网| 日本熟妇一区二区三区| 蜜桃免费网站一区二区三区| 国产日韩欧美视频在线| 91麻豆视频在线观看| 国产在线精品一区二区不卡了 | 欧美日韩免费一区二区| 综合一区av| 欧美精品videossex88| 日韩黄色a级片| 雨宫琴音一区二区在线| 91av在线播放| 久久精品国产亚洲av麻豆蜜芽| 久久国产成人午夜av影院| 亚洲a成v人在线观看| 精品黑人一区二区三区国语馆| 国产91对白在线观看九色| 国产一区免费在线| 国产免费av在线| 亚洲丝袜精品丝袜在线| 天堂8在线天堂资源bt| 天堂中文在线播放| 欧美日韩在线综合| 在线观看你懂的视频| 国产精品调教视频| 中文字幕精品一区久久久久| 国产三级国产精品国产国在线观看 | 欧美日韩成人综合天天影院 | www.亚洲在线| 亚洲三区在线| 久久久123| 日本精品一区二区三区四区的功能| 亚洲va在线va天堂va偷拍| 国产成人一二| 日韩在线视频中文字幕| 欧美国产日韩在线观看成人| 亚洲精选91| 国产精品久久久久久久av电影 | 一区二区三区视频| av资源中文在线| 欧美日韩国产成人在线免费| 久久久久成人精品无码中文字幕| 大胆日韩av| 久久99久久99精品中文字幕| 无码一区二区三区| 国产麻豆成人传媒免费观看| 免费h精品视频在线播放| 超碰超碰在线| 欧美性大战久久久久久久| 人妻互换一二三区激情视频| av官网在线播放| 日韩欧美亚洲综合| 高潮一区二区三区| 亚洲人成网77777色在线播放| 日韩色av导航| 亚洲 日本 欧美 中文幕| 岛国一区二区在线观看| 中文字幕乱码一区二区三区 | 国产91久久婷婷一区二区| 国产夫妻在线观看| 中文字幕一区二区三区在线播放| 精品一区二区三区无码视频| 欧美日韩va| 亚洲午夜女主播在线直播| 六月丁香婷婷综合| av资源站一区| 91亚洲精品国产| 色综合视频一区二区三区日韩| 亚洲免费中文字幕| 欧美成人一二三区| 国产一区二区福利视频| 亚洲视频电影| 日韩高清在线| 亚洲免费中文字幕| 国产专区第一页| av中文一区二区三区| 免费看欧美黑人毛片| 国产一区二区三区| 久久综合电影一区| 91福利免费视频| 国产精品麻豆网站| 男女男精品视频站| 精品视频日韩| 国产精品扒开腿做| 91视频在线观看| 欧美在线一区二区| 亚洲女人久久久| 激情文学综合插| 欧美日韩一区二区三区电影| 9999精品免费视频| 久久av资源网站| 精品人妻一区二区三区换脸明星| 一区二区高清免费观看影视大全| 亚洲一区二区图片| 欧美二区不卡| 国产精品久久久久久久久久久久冷 | 成人在线爆射| 国产午夜精品全部视频在线播放| 中文字幕高清在线免费播放| 成人av高清在线| 六月丁香婷婷激情| 国产欧美日韩精品高清二区综合区| 热久久免费视频精品| 日韩一级中文字幕| 色哟哟亚洲精品| 少妇太紧太爽又黄又硬又爽小说| 久久99国产乱子伦精品免费| 韩国无码av片在线观看网站| 美国一区二区| 国产精品观看在线亚洲人成网| 女人偷人在线视频| 欧美男人的天堂一二区| 久久亚洲成人av| 2014亚洲片线观看视频免费| 亚洲少妇第一页| 欧美成人嫩草网站| 精品日韩欧美| 青青草免费观看视频| 国产一区2区| 成人精品久久一区二区三区| 91极品在线| 亚洲国产精彩中文乱码av| 日本视频网站在线观看| 亚洲欧美中日韩| 大尺度做爰床戏呻吟舒畅| 日韩国产欧美在线播放| 大陆极品少妇内射aaaaaa| 中文字幕中文字幕精品| 91啪国产在线| 黄视频免费在线看| 最近2019年好看中文字幕视频| www.av导航| 欧美婷婷六月丁香综合色| 久久久精品人妻一区二区三区四| 91麻豆视频网站| 在线播放黄色av| 亚洲中字黄色| 青青草综合视频| 国产一区二区观看| 国产精品入口免费| 色综合视频一区二区三区日韩| 91极品女神在线| www.在线视频| 在线亚洲午夜片av大片| 无码国产精品一区二区免费16| 欧美视频一区在线| 日本熟妇一区二区| 亚洲人精品午夜| 国产三级av在线播放| 成人午夜免费电影| 97免费在线视频| 国产美女三级无套内谢| 色天使色偷偷av一区二区| 永久免费看mv网站入口| 久久精品视频在线看| 毛茸茸free性熟hd| 国内精品视频一区二区三区八戒 | 国产农村妇女精品一区二区| 黄色一级视频播放| 99久久www免费| 欧美日韩亚洲综合一区二区三区激情在线| 免费精品一区二区三区在线观看| 国产精品国产福利国产秒拍| 18aaaa精品欧美大片h| 欧美成人网在线| 日韩三级影院| 日韩高清免费观看| 亚洲AV无码乱码国产精品牛牛| 欧美另类高清zo欧美| 亚洲 国产 日韩 欧美| 欧美性jizz18性欧美| 亚洲国产精一区二区三区性色| 亚洲三级电影全部在线观看高清| 精品亚洲aⅴ无码一区二区三区| 99久久国产综合精品麻豆 | 99久久伊人网影院| 中文字幕天堂av| 国产·精品毛片| 99久久久无码国产精品性波多| 激情亚洲综合在线| a级大片免费看| 国产精品一区在线观看你懂的| 亚洲精品久久久中文字幕| 蜜桃av一区二区| 亚洲一级片网站| 九色综合狠狠综合久久| 99re精彩视频| 韩国av一区二区三区在线观看 | 石原莉奈在线亚洲三区| 茄子视频成人免费观看| 久久精品官网| 福利视频一二区| 日本中文字幕高清| 精品国产中文字幕第一页| 美国av一区二区三区| 亚洲欧美成人vr| 色爱区成人综合网| 日韩精品第一区| 婷婷视频在线播放| 黄色工厂这里只有精品| 黄页网站大全在线观看| 精品1区2区3区4区| av动漫在线看| 青草国产精品久久久久久| 成人午夜视频免费在线观看| 日韩国产欧美视频| 亚洲欧美一区二区三区不卡| 成人18视频日本| 91久久免费视频| 亚洲欧洲国产专区| 日韩精品一卡二卡| 在线观看国产日韩| 国产ts变态重口人妖hd| 日韩av影视在线| yjizz视频网站在线播放| 麻豆国产va免费精品高清在线| caoporn免费在线视频| 午夜精品99久久免费| 日韩a**中文字幕| 成人激情黄色网| 日韩精品福利一区二区三区| 欧美精品一区二区三区久久| 国产精品二区不卡| 亚洲人成无码网站久久99热国产| 久久综合影视| 久久在线免费| 日韩动漫在线观看| 好看的日韩av电影| 国产精品入口免费软件| 成人h版在线观看| 欧美xxxooo| 91极品美女在线| 秋霞网一区二区| 久久国产精品久久精品| 日本少妇一区| 久久国产精品精品国产色婷婷| 无码一区二区三区视频| 欧美日韩亚洲一二三| 成人黄色av网站在线| 欧美大片xxxx| 欧美日产在线观看| 成人在线播放视频| 91精品国产精品| 成人在线tv视频| 成人污网站在线观看| 韩国女主播成人在线观看| 精品国产aaa| 91黄视频在线观看| 欧美日韩影视| 2018日韩中文字幕| 高清一区二区| 在线日韩av永久免费观看| 日韩电影在线免费看| 欧美特黄一区二区三区| 精品国产乱码久久久久酒店 | 欧美草草影院在线视频| av在线app| 91色精品视频在线| 亚洲自拍偷拍网| 日韩欧美中文在线视频| 18欧美亚洲精品| 国产一区二区在线视频聊天| www日韩中文字幕在线看| 欧美韩国日本| 熟女视频一区二区三区| 国产精品一区免费在线观看| 国产精品九九九九九九| 日韩欧美中文字幕精品| 婷婷色在线资源| 国产chinese精品一区二区| 伊人精品视频| 国产夫妻性爱视频| 色婷婷av一区二区三区软件 | 亚洲色精品三区二区一区| 国产午夜精品在线观看| 中文天堂在线视频| 日韩在线视频一区| 久久视频社区| 国产视频在线观看网站| 99精品一区二区| 国产精品va无码一区二区三区| 国产午夜精品免费一区二区三区| 日韩电影精品| 男人天堂网站在线| 成人成人成人在线视频| 黑人巨大国产9丨视频| 伊人精品成人久久综合软件| 欧美无人区码suv| 欧美综合一区二区三区| 一区二区三区视频网站 | 国产精品-色哟哟| 在线观看91视频| 国内外激情在线| 国产在线精品一区二区中文 | 国产精品视频不卡| 一区二区影视| bl动漫在线观看| 欧洲国产伦久久久久久久| 粗大黑人巨茎大战欧美成人| 国产精品中出一区二区三区| 视频一区国产视频| 私库av在线播放| 亚洲精品视频免费在线观看| 日韩一级特黄| 男女视频网站在线观看| 国产日韩欧美精品在线| 国产99视频在线| 欧美亚洲成人精品| 91精品蜜臀一区二区三区在线| 国产乱淫av片| 欧美视频在线一区二区三区| 在线视频观看国产| 欧美一级二级三级| 国产精品性做久久久久久| 99re国产在线| 欧美激情图片区| 久久一区91| 久久久亚洲av波多野结衣| 777色狠狠一区二区三区| 在线黄色的网站| 蜜臀精品一区二区|