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

還在用 Swiper.js 嗎?CSS實(shí)現(xiàn)帶指示器的 Swiper

開發(fā) 前端
隨著CSS地不斷發(fā)展,現(xiàn)在純CSS也幾乎能夠?qū)崿F(xiàn)這樣一個(gè)swiper了,實(shí)現(xiàn)更加簡(jiǎn)單,更加輕量,性能也更好,完全足夠日常使用,最近在項(xiàng)目中也碰到了一個(gè)swiper的需求,剛好練一下手,一起看看吧!

幾乎每個(gè)前端開發(fā)都應(yīng)該用過這個(gè)滑動(dòng)組件庫吧?這就是大名鼎鼎的swiper.js

沒想到已經(jīng)出到 11 個(gè)大版本了 https://www.swiper.com.cn/

當(dāng)然我也不例外,確實(shí)非常全面,也非常強(qiáng)大。

不過很多時(shí)候,我們可能只用到了它的10%不到的功能,顯然是不劃算的,也會(huì)有性能方面的顧慮。

隨著CSS地不斷發(fā)展,現(xiàn)在純CSS也幾乎能夠?qū)崿F(xiàn)這樣一個(gè)swiper了,實(shí)現(xiàn)更加簡(jiǎn)單,更加輕量,性能也更好,完全足夠日常使用,最近在項(xiàng)目中也碰到了一個(gè)swiper的需求,剛好練一下手,一起看看吧!

一、CSS 滾動(dòng)吸附

swiper有一個(gè)最大的特征就是滾動(dòng)吸附。相信很多同學(xué)已經(jīng)想到了,那就是CSS scroll snap,這里簡(jiǎn)單介紹一下。

看似屬性非常多,其實(shí)CSS scroll snap最核心的概念有兩個(gè),一個(gè)是scroll-snap-type,還一個(gè)是scroll-snap-align,前者是用來定義吸附的方向和吸附程度的,設(shè)置在「滾動(dòng)容器」上。后者是用來定義吸附點(diǎn)的對(duì)齊方式的,設(shè)置在「子元素」上。

有了這兩個(gè)屬性,就可以很輕松的實(shí)現(xiàn)滾動(dòng)吸附效果了,下面舉個(gè)例子。

<div class="swiper">
  <div class="swiper-item">
    <div class="card"></div>
  </div>
  <div class="swiper-item">
    <div class="card"></div>
  </div>
  <div class="swiper-item">
    <div class="card"></div>
  </div>
</div>

簡(jiǎn)單修飾一下,讓swiper可以橫向滾動(dòng)。

.swiper {
  display: flex;
  overflow: auto;
}
.swiper-item {
  width: 100%;
  display: flex;
  justify-content: center;
  flex-shrink: 0;
}
.card {
  width: 300px;
  height: 150px;
  border-radius: 12px;
  background-color: #9747FF;
}

效果如下:

然后加上scroll-snap-type和scroll-snap-align。

.swiper {
  /**/
  scroll-snap-type: x mandatory;
}
.swiper-item {
  /**/
  scroll-snap-align: center;
}

這樣就能實(shí)現(xiàn)滾動(dòng)吸附了。

注意這里還有一個(gè)細(xì)節(jié),如果滑動(dòng)的非常快,是可以從第一個(gè)直接滾動(dòng)到最后一個(gè)的,就像這樣。

如果不想跳過,也就是每次滑動(dòng)只會(huì)滾動(dòng)一屏,可以設(shè)置scroll-snap-stop屬性,他可以決定是否“跳過”吸附點(diǎn),默認(rèn)是normal,可以設(shè)置為always,表示每次滾動(dòng)都會(huì)停止在最近的一個(gè)吸附點(diǎn)。

.swiper-item {
  scroll-snap-align: center;
  scroll-snap-stop: always;
}

這樣無論滾動(dòng)有多快,都不會(huì)跳過任何一屏了。

還有一點(diǎn),現(xiàn)在是有滾動(dòng)條的,顯然是多余的。

這里可以用::-webkit-scrollbar去除滾動(dòng)條。

::-webkit-scrollbar{
  width: 0;
  height: 0;
}

滑動(dòng)基本上就這樣了,下面來實(shí)現(xiàn)比較重要的指示器。

二、CSS 滾動(dòng)驅(qū)動(dòng)動(dòng)畫

首先我們加幾個(gè)圓形的指示器。

<div class="swiper">
  <div class="swiper-item">
    <div class="card"></div>
  </div>
  <div class="swiper-item">
    <div class="card"></div>
  </div>
  <div class="swiper-item">
    <div class="card"></div>
  </div>
  <!--指示器-->
  <div class="pagination">
    <i class="dot"></i>
    <i class="dot"></i>
    <i class="dot"></i>
  </div>
</div>

用絕對(duì)定位定在下方。

.pagination {
  position: absolute;
  display: inline-flex;
  justify-content: center;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  gap: 4px;
}
.dot {
  width: 6px;
  height: 6px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.36);
  transition: 0.3s;
}

效果如下:

那么,如何讓下方的指示器跟隨滾動(dòng)而變化呢?

在這里,我們可以再單獨(dú)繪制一個(gè)高亮的狀態(tài),剛好覆蓋在現(xiàn)在的指示器上,就用偽元素來代替。

.pagination::before{
  content: '';
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 3px;
  background-color: #F24822;
  left: 0;
}

效果如下:

然后給這個(gè)高亮狀態(tài)一個(gè)動(dòng)畫,從第一個(gè)指示器位置移動(dòng)到最后一個(gè)。

.pagination::after{
  /**/
  animation: move 3s linear forwards;
}
@keyframes move {
  to {
    left: 100%;
    transform: translateX(-100%);
  }
}

現(xiàn)在這個(gè)紅色的圓會(huì)自動(dòng)從左到右運(yùn)動(dòng),效果如下:

最后,讓這個(gè)動(dòng)畫和滾動(dòng)關(guān)聯(lián)起來,也就是滾動(dòng)多少,這個(gè)紅色的圓就運(yùn)動(dòng)多少。

.swiper {
  /**/
  scroll-timeline: --scroller x;
}
.pagination::after{
	/**/
  animation: move 3s linear forwards;
  animation-timeline: --scroller;
}

這樣就基本實(shí)現(xiàn)了指示器的聯(lián)動(dòng)。

當(dāng)然,你還可以換一種動(dòng)畫形式,比如steps。

.pagination::after{
	/**/
  animation: move 3s steps(3, jump-none) forwards;
  animation-timeline: --scroller;
}

效果如下(可能會(huì)更常見)。

你也可以訪問以下在線demo

  • CSS swiper (juejin.cn)[1]

三、CSS 時(shí)間線范圍

上面的指示器實(shí)現(xiàn)其實(shí)是通過覆蓋的方式實(shí)現(xiàn)的,這就意味著無法實(shí)現(xiàn)這種有尺寸變化的效果,例如:

這種情況下,每個(gè)指示器的變化是獨(dú)立的,而且尺寸變化還會(huì)相互擠壓。

那么,有沒有辦法實(shí)現(xiàn)這樣的效果呢?當(dāng)然也是有的,需要用到 CSS 時(shí)間線范圍,也就是 timeline-scope。

https://developer.mozilla.org/en-US/docs/Web/CSS/timeline-scope

這是什么意思呢?默認(rèn)情況下,CSS 滾動(dòng)驅(qū)動(dòng)作用范圍只能影響到子元素,但是通過timeline-scope,可以讓任意元素都可以受到滾動(dòng)驅(qū)動(dòng)的影響。簡(jiǎn)單舉個(gè)例子。

<div class="content">
  <div class="box animation"></div>
</div>

<div class="scroller">
  <div class="long-element"></div>
</div>

這是兩個(gè)元素,右邊的是滾動(dòng)容器,左邊的是一個(gè)可以旋轉(zhuǎn)的矩形。

我們可以在他們共同的父級(jí),比如body定義一個(gè)timeline-scope。

body{
  timeline-scope: --myScroller;
}

然后,滾動(dòng)容器的滾動(dòng)和矩形的動(dòng)畫就可以通過這個(gè)變量關(guān)聯(lián)起來了。

.scroller {
  overflow: scroll;
  scroll-timeline-name: --myScroller;
  background: deeppink;
}
.animation {
  animation: rotate-appear;
  animation-timeline: --myScroller;
}

效果如下:

我們回到這個(gè)例子中來,很明顯每個(gè)卡片對(duì)應(yīng)一個(gè)指示器,但是他們從結(jié)構(gòu)上又不是包含關(guān)系,所以這里也可以給每個(gè)卡片和指示器一個(gè)相關(guān)聯(lián)的變量,具體實(shí)現(xiàn)如下:

<div class="swiper-container" style="timeline-scope: --t1,--t2,--t3;">
  <div class="swiper" style="--t: --t1">
    <div class="swiper-item">
      <div class="card">1</div>
    </div>
    <div class="swiper-item" style="--t: --t2">
      <div class="card">2</div>
    </div>
    <div class="swiper-item"  style="--t: --t3">
      <div class="card">3</div>
    </div>
  </div>
  <div class="pagination">
    <i class="dot" style="--t: --t1"></i>
    <i class="dot" style="--t: --t2"></i>
    <i class="dot" style="--t: --t3"></i>
  </div>
</div>

然后,給每個(gè)指示器添加一個(gè)動(dòng)畫。

@keyframes move {
  50% {
    width: 12px;
    border-radius: 3px 0px;
    border-color: rgba(0, 0, 0, 0.12);
    background: #fff;
  }
}

效果如下:

然后我們需要將這個(gè)動(dòng)畫和卡片的滾動(dòng)關(guān)聯(lián)起來,由于是需要監(jiān)聽卡片的位置狀態(tài),比如只有第二個(gè)出現(xiàn)在視區(qū)范圍內(nèi)時(shí),第二個(gè)指示器才會(huì)變化,所以這里要用到view-timeline,關(guān)鍵實(shí)現(xiàn)如下:

.swiper-item {
  /**/
  view-timeline: var(--t) x;
}
.dot {
  /**/
  animation: move 3s;
  animation-timeline: var(--t);
}

這樣就實(shí)現(xiàn)了我們想要的效果。

你也可以訪問以下在線demo

  • CSS swiper timeline scope (juejin.cn)[2]

四、CSS 自動(dòng)播放

由于是頁面滾動(dòng),CSS 無法直接控制,所以要換一種方式。通常我們會(huì)借助JS定時(shí)器實(shí)現(xiàn),但是控制比較麻煩。

沒錯(cuò),我們這里也可以用這個(gè)原理實(shí)現(xiàn)。

給容器定義一個(gè)無關(guān)緊要的動(dòng)畫。

.swiper {
  animation: scroll 3s infinite; /*每3s動(dòng)畫,無限循環(huán)*/
}
@keyframes scroll {
  to {
    transform: opacity: .99; /*無關(guān)緊要的樣式*/
  }
}

然后監(jiān)聽animationiteration事件,這個(gè)事件表示每次動(dòng)畫循環(huán)就觸發(fā)一次,也就相當(dāng)于每3秒執(zhí)行一次。

swiper.addEventListener("animationiteration", (ev) => {
  // 輪播邏輯
  if (ev.target.offsetWidth+ev.target.scrollLeft >= ev.target.scrollWidth) {
    // 滾動(dòng)到最右邊了直接回到0
    ev.target.scrollTo({
      left: 0,
      behavior: "smooth",
    })
  } else {
    // 每次滾動(dòng)一屏
    ev.target.scrollBy({
      left: ev.target.offsetWidth,
      behavior: "smooth",
    });
  }
})

相比定時(shí)器的好處就是,可以直接通過CSS控制播放和暫停,比如我們要實(shí)現(xiàn)當(dāng)鼠標(biāo)放在輪播上是自動(dòng)暫停,可以這樣來實(shí)現(xiàn),副作用更小

swiper:hover, .swiper:active{
  animation-play-state: paused; /*hover暫停*/
}

最終效果如下:

你也可以訪問以下在線demo

  • CSS swiper autoplay (juejin.cn)[3]

五、回調(diào)事件

swiper很多時(shí)候不僅僅只是滑動(dòng),還需要有一個(gè)回調(diào)事件,以便于其他處理。這里由于是滾動(dòng)實(shí)現(xiàn),所以有必要監(jiān)聽scroll事件。

實(shí)現(xiàn)很簡(jiǎn)單,只需要監(jiān)聽滾動(dòng)偏移和容器本身的尺寸就可以了,具體實(shí)現(xiàn)如下:

swiper.addEventListener("scroll", (ev) => {
  const index =  Math.floor(swiper.scrollLeft / swiper.offsetWidth)
  console.log(index)
})

效果如下:

你可能覺得觸發(fā)次數(shù)太多了,我們可以限制一下,只有改變的時(shí)候才觸發(fā)。

swiper.addEventListener("scroll", (ev) => {
  const index =  Math.floor(swiper.scrollLeft / swiper.offsetWidth)
  // 和上次不相同的時(shí)候才打印
  if (swiper.index!== index) {
    swiper.index = index
    console.log(index)
  }
})

現(xiàn)在就好一些了。

還可以繼續(xù)優(yōu)化,當(dāng)滑動(dòng)超過一半時(shí),就認(rèn)為已經(jīng)滑到下一個(gè)卡片了,只需要在原有基礎(chǔ)上加上0.5就行了。

swiper.addEventListener("scroll", (ev) => {
  const index =  Math.floor(swiper.scrollLeft / swiper.offsetWidth + 0.5)
  if (swiper.index!== index) {
    swiper.index = index
    console.log(index)
  }
})

效果如下:

如果在 vue這樣的框架里,就可以直接這樣實(shí)現(xiàn)了。

const current = ref(0)
const scroll = (ev: Event) => {
  const swiper = ev.target as HTMLDivElement
  if (swiper) {
    current.value = Math.floor(swiper.scrollLeft / swiper.offsetWidth + 0.5)
  }
}
const emits = defineEmits(['change'])
watch(current, (v) => {
  emits('change', v)
})

六、兼容性處理

前面提到的CSS滾動(dòng)驅(qū)動(dòng)動(dòng)畫兼容性不是很好,需要Chrome 115+,所以對(duì)于不支持的瀏覽器,你也可以用監(jiān)聽回調(diào)事件的方式來實(shí)現(xiàn)指示器聯(lián)動(dòng),就像這樣。

swiper.addEventListener("scroll", (ev) => {
  const index =  Math.floor(swiper.scrollLeft / swiper.offsetWidth + 0.5)
  if (swiper.index!== index) {
    swiper.index = index
    console.log(index)
    if (!CSS.supports("animation-timeline","scroll()")) {
      document.querySelector('.dot[data-current="true"]').dataset.current = false
      document.querySelectorAll('.dot')[index].dataset.current = true
    }
  }
})

對(duì)于 CSS部分,還需要用CSS support判斷一下,這樣一來,不支持瀏覽器就不會(huì)自動(dòng)播放動(dòng)畫了。

@supports (animation-timeline: scroll()) {
  .dot{
    animation: move 1s;
    animation-timeline: var(--t);
  }
}
@supports not (animation-timeline: scroll()) {
  .dot[data-current="true"]{
    width: 12px;
    border-radius: 3px 0px;
    border-color: rgba(0, 0, 0, 0.12);
    background: #fff;
  }
}

這樣既使用了最新的瀏覽器特性,又兼顧了不支持的瀏覽器,下面是Safari的效果。

對(duì)比一下支持animation-timeline的瀏覽器(chrome 115+)。

你會(huì)發(fā)現(xiàn),這種效果更加細(xì)膩,指示器是完全跟隨滾動(dòng)進(jìn)度變化的。

也算一種體驗(yàn)增強(qiáng)吧,你也可以訪問以下在線demo

  • CSS swiper support (juejin.cn)

七、總結(jié)一下

做好兼容,CSS 也是可以嘗試最新特性的,下面總結(jié)一下要點(diǎn)

  • swiper 非常強(qiáng)大,我們平時(shí)可能只用到了它的10%不到的功能,非常不劃算。
  • CSS發(fā)展非常迅速,完全可以借助 CSS代替部分swiper。
  • 滾動(dòng)吸附比較容易,需要借助CSS scroll snap完成。
  • 指示器聯(lián)動(dòng)可以用CSS滾動(dòng)驅(qū)動(dòng)動(dòng)畫實(shí)現(xiàn),讓指示器唯一動(dòng)畫和滾動(dòng)關(guān)聯(lián)起來,也就是滾動(dòng)多少,指示器就偏移多少。
  • 默認(rèn)情況下,CSS 滾動(dòng)驅(qū)動(dòng)作用范圍只能影響到子元素,但是通過timeline-scope,可以讓任意元素都可以受到滾動(dòng)驅(qū)動(dòng)的影響。
  • 利用timeline-scope,我們可以將每個(gè)卡片的位置狀態(tài)和每個(gè)指示器的動(dòng)畫狀態(tài)聯(lián)動(dòng)起來。
  • 自動(dòng)播放可以借助animationiteration回調(diào)事件,相比JS定時(shí)器,控制更加方便,副作用更小。
  • 回調(diào)事件需要監(jiān)聽scroll實(shí)現(xiàn),只需要監(jiān)聽滾動(dòng)偏移和容器本身的尺寸的比值就行了。
  • 對(duì)于不兼容的瀏覽器,也可以通過回調(diào)事件手動(dòng)關(guān)聯(lián)指示器的狀態(tài)。
  • 兼容性判斷,JS可以使用CSS.supports,CSS可以使用@supports。

當(dāng)然,swiper的功能遠(yuǎn)不止上面這些,但是我們平時(shí)遇到的需求可能只是其中的一小部分,大可以通過CSS方式去實(shí)現(xiàn),充分發(fā)揮瀏覽器的特性,量身定制才會(huì)有足夠的性能和體驗(yàn)。

[1]CSS swiper (juejin.cn): https://code.juejin.cn/pen/7391010495207047205

[2]CSS swiper timeline scope (juejin.cn): https://code.juejin.cn/pen/7391018122460954636

[3]CSS swiper autoplay (juejin.cn): https://code.juejin.cn/pen/7391025055079890995

責(zé)任編輯:姜華 來源: 前端偵探
相關(guān)推薦

2024-11-12 16:28:34

2022-09-13 17:54:55

CSS定時(shí)器監(jiān)聽事件

2022-11-14 18:43:03

JSCSS節(jié)流

2009-08-27 12:58:44

C#索引指示器

2012-07-19 10:03:32

2023-08-08 14:31:42

輪播圖鴻蒙

2021-11-02 16:44:40

部署DevtoolsJRebel

2025-09-08 04:00:00

2024-06-11 00:00:00

前端輪播圖硬件

2021-07-17 15:31:20

ChromeHTTPS瀏覽器

2020-03-04 14:05:35

戴爾

2021-01-03 17:14:16

ORMObjective S運(yùn)行

2024-09-18 09:18:11

2025-04-02 08:47:23

DOM文檔結(jié)構(gòu)API

2022-05-06 16:12:40

定時(shí)器CSS前端

2021-06-15 15:28:31

谷歌Android開發(fā)

2021-02-21 11:09:18

鴻蒙HarmonyOS應(yīng)用開發(fā)

2025-10-28 01:45:00

setTimeouAPI日志

2024-10-11 16:34:22

2019-02-21 10:17:45

Windows 10 剩余時(shí)間電池壽命
點(diǎn)贊
收藏

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

麻豆免费在线观看视频| 中文字幕一区综合| 国产日产精品一区二区三区| 欧美综合一区| 欧美一区二区福利视频| 欧美三级在线观看视频| 99riav在线| 国产一二精品视频| 欧美在线xxx| 国产麻豆视频在线观看| 欧美激情久久久久久久久久久| 日本道在线观看一区二区| 欧美另类videos| 欧美精品少妇| 国产精品一二三四五| 欧美中文字幕视频| 久久久久久久黄色| 欧美激情另类| 亚洲美女av在线播放| 免费人成视频在线播放| 成人mm视频在线观看| 亚洲国产一区二区三区| 在线视频一区观看| 欧美女v视频| 成人av免费在线观看| 成人a免费视频| www五月天com| 在线成人h网| 欧美老女人xx| 久草福利资源在线| 久久av免费看| 精品视频www| 丰满少妇xbxb毛片日本| 精品91福利视频| 欧美在线视频日韩| 欧美成人xxxxx| 国产后进白嫩翘臀在线观看视频| 中文字幕一区免费在线观看 | 麻豆成人免费视频| 在线精品一区二区| 欧美第一淫aaasss性| 国产美女高潮视频| 99精品综合| 深夜福利国产精品| 色欲AV无码精品一区二区久久| 高潮按摩久久久久久av免费| 日韩精品中文字幕在线一区| 手机免费看av网站| 欧美黑粗硬大| 欧美久久久一区| 男生操女生视频在线观看| 色豆豆成人网| 欧美自拍丝袜亚洲| 网站一区二区三区| 久久人体av| 精品视频在线免费| 一区二区免费av| 亚洲精品一区av| 91精品国产综合久久久蜜臀粉嫩| 亚洲欧美自拍另类日韩| 日韩国产大片| 欧美一级在线观看| 久久久久久久穴| 欧美久久精品| 亚洲午夜激情免费视频| 女人裸体性做爰全过| 婷婷精品进入| 色综合视频一区中文字幕| 国产在线欧美在线| 久久精品道一区二区三区| 国产91精品网站| 国产成人精品一区二区色戒| 久久成人麻豆午夜电影| 亚洲一区二区三区在线视频| 性生活视频软件| 成人av网站大全| 区一区二区三区中文字幕| av影片在线看| 亚洲在线观看免费| 丝袜人妻一区二区三区| 波多视频一区| 欧美顶级少妇做爰| www.啪啪.com| 国产成人三级| 欧美成人黑人xx视频免费观看| 久久99久久久| 视频在线观看91| 91欧美精品成人综合在线观看| 亚洲国产精品成人久久蜜臀| 久久久久久久久久久久久久久99 | 国产资源在线观看| 亚洲日本在线天堂| 免费看国产一级片| 国产亚洲精品精品国产亚洲综合| 日韩视频免费直播| 成人片黄网站色大片免费毛片| 91影院成人| 91精品国产色综合久久不卡98口 | 人人爽人人爽人人片av| 精品一区二区国语对白| 久久riav| 中文字幕在线观看网站| 色婷婷av一区| 91精品国产高清91久久久久久| 中文字幕中文字幕精品| 欧美刺激性大交免费视频| 毛片基地在线观看| 国产在线播放一区二区三区| 久久视频在线观看中文字幕| aaa大片在线观看| 色屁屁一区二区| 俄罗斯黄色录像| 手机在线一区二区三区| 2021国产精品视频| 国产福利资源在线| 中文在线一区二区| 丰满爆乳一区二区三区| 亚洲精选av| 久久久精品电影| 免费在线观看av的网站| www国产成人| 欧美日韩视频免费| 欧美日韩伦理一区二区| 亚洲欧美日韩另类| 日本一级淫片免费放| 国产精品亚洲一区二区三区在线| 亚洲国产一区二区在线| 亚洲承认视频| 精品中文视频在线| 日韩av在线播| 丁香婷婷综合五月| 69精品丰满人妻无码视频a片| 久久人体av| 中文字幕最新精品| 中文字幕+乱码+中文字幕明步| 久久女同性恋中文字幕| www.爱色av.com| 奇米影视777在线欧美电影观看| 欧美精品videossex88| 国产视频在线观看免费 | 国产亚洲成人精品| 国产精品一区二区在线观看不卡| 伊人久久大香线蕉综合75| 亚洲爱爱视频| 中文字幕亚洲欧美日韩高清| 男操女视频网站| 国产日韩欧美一区二区三区乱码 | 丝袜美腿精品国产二区| 少妇一级淫片日本| 中文字幕av一区 二区| 中文字幕网av| 欧美成人直播| 91色视频在线导航| 50度灰在线| 欧美成人性福生活免费看| 妺妺窝人体色www聚色窝仙踪 | 国产一区二区三区的电影| 国产日韩一区二区| 在线能看的av网址| 亚洲色图美腿丝袜| 亚洲一卡二卡在线观看| 国产精品久久毛片| 日本一本在线视频| 尹人成人综合网| 国产在线精品一区二区三区| 蜜桃麻豆av在线| 国产午夜精品免费一区二区三区| 中文字幕av在线免费观看| 中文字幕av一区二区三区免费看| 中文字幕1234区| 红桃视频国产一区| 欧美高清视频一区| 日本成人在线网站| 久久99视频精品| 三级网站免费观看| 91久久香蕉国产日韩欧美9色| 中国美女黄色一级片| 国产精品77777| 男女激情无遮挡| 日韩理论电影院| 国产成人免费观看| 欧美电影免费看| 久久精品99久久久久久久久| 亚洲美女综合网| 色综合视频在线观看| 视频国产一区二区| www.av精品| 91国内在线播放| 国产婷婷精品| 欧美爱爱视频网站| 午夜先锋成人动漫在线| 国产欧美婷婷中文| 神马午夜在线视频| 日韩一区二区av| 午夜在线视频免费| 欧美精品vⅰdeose4hd| 国产九色在线播放九色| 综合精品久久久| 久久久久久亚洲中文字幕无码| 国产精品一区二区不卡| 青青在线免费观看视频| 国产精品www.| 亚洲一区二区不卡视频| 香蕉国产成人午夜av影院| 51国偷自产一区二区三区的来源| 成人片免费看| 久久久久久久久久久网站| 3p视频在线观看| 亚洲美女av在线播放| 亚洲AV午夜精品| 在线成人午夜影院| 蜜臀99久久精品久久久久小说| 一区二区三区在线观看动漫| 懂色av粉嫩av浪潮av| 91在线视频网址| 精品久久久久久无码人妻| 久久国产欧美日韩精品| 久久久久久香蕉| 亚洲免费大片| av在线免费观看国产| 婷婷亚洲综合| 亚洲视频精品一区| 国际精品欧美精品| 美日韩免费视频| 欧美成人午夜77777| 99热在线国产| 久久国产精品美女| 国产一区私人高清影院| 亚洲电影有码| 国产精品高清在线观看| 91av亚洲| 日本欧美精品在线| 中文字幕在线看片| 欧美一级片在线播放| 美女网站在线看| 91av视频在线观看| 麻豆mv在线看| 97在线观看视频国产| a级片免费在线观看| 午夜精品久久久久久久久久久久久| 先锋影音在线资源站91| 色综合久久久888| 色呦呦在线免费观看| 欧美乱妇高清无乱码| 污网站在线免费看| 欧美日韩高清在线观看| 久久国产精品黑丝| 午夜免费日韩视频| 桃色av一区二区| 日韩美女在线播放| 成人黄色毛片| 国产男女猛烈无遮挡91| 一区二区三区日本视频| 亚洲jizzjizz日本少妇| 日韩第一区第二区| 国产三级精品在线不卡| 青青视频一区二区| 日本精品二区| 99热国内精品| 激情六月天婷婷| 国产午夜久久| 亚洲一二三区av| 黄色小说综合网站| 欧美xxxx日本和非洲| 99视频一区二区三区| 久久久久久久毛片| 中文字幕一区二区三区不卡在线| 糖心vlog免费在线观看| 亚洲制服丝袜一区| 日本a级c片免费看三区| 欧美色网一区二区| 亚洲第一大网站| 亚洲人成电影网站色xx| 久cao在线| 69国产精品成人在线播放| 小明成人免费视频一区| 97夜夜澡人人双人人人喊| 里番精品3d一二三区| 亚洲精品日韩在线观看| 欧美精品啪啪| 日韩欧美xxxx| 国产精品自拍三区| 无遮挡aaaaa大片免费看| 国产精品视频线看| 91精品国产高潮对白| 欧洲视频一区二区| 精品人妻一区二区三区浪潮在线| 精品亚洲aⅴ在线观看| 91在线品视觉盛宴免费| 欧美精品videos| 少妇高潮一区二区三区99| 国产精品视频一区二区三区经| 精品精品99| 欧美国产日韩激情| 久久机这里只有精品| 大黑人交xxx极品hd| 亚洲免费观看高清在线观看| 男人天堂2024| 亚洲国产成人精品久久| 色开心亚洲综合| 91精品国产色综合久久不卡98口 | 黑人巨大精品欧美一区二区桃花岛| 国产美女久久精品香蕉69| 天天躁日日躁成人字幕aⅴ| mm131午夜| 青青草伊人久久| 中文字幕日韩三级片| 一区二区三区视频在线观看| 波多野结衣人妻| 精品视频久久久久久久| 日本资源在线| 91精品国产综合久久香蕉最新版 | 夜色77av精品影院| 妺妺窝人体色www看人体| 看电视剧不卡顿的网站| 人人妻人人藻人人爽欧美一区| 亚洲一区二区三区精品在线| 91麻豆国产视频| 中文字幕v亚洲ⅴv天堂| 妞干网免费在线视频| 国产伦精品一区二区三区在线| 亚洲国产老妈| 亚洲精品永久视频| 中文文精品字幕一区二区| 国产亚洲欧美在线精品| 日韩av在线免费| aa级大片免费在线观看| 91九色蝌蚪成人| 一区二区电影| www.亚洲自拍| 亚洲视频一二三| 国产精品探花视频| 日韩中文字幕免费看| 日韩免费小视频| 日韩中文不卡| 免费成人av资源网| 九一在线免费观看| 欧美在线你懂得| 波多野结衣在线网站| 国产精品视频区| 日韩在线观看| 欧美一级小视频| 亚洲品质自拍视频| 超碰福利在线观看| 欧美第一黄网免费网站| 成人在线超碰| 国产一区二区在线视频播放| 2019国产精品| 成人黄色三级视频| 日韩在线观看你懂的| 香蕉久久一区| 国产免费内射又粗又爽密桃视频| 国产成人精品亚洲777人妖| 久久久久久久蜜桃| 亚洲国产精品视频在线观看| 日本免费一区二区六区| 日本一区二区精品视频| 日韩av网站在线观看| 久久精品在线观看视频| 日韩欧美国产精品| 国产色播av在线| 日本一区免费观看| 麻豆一区二区三区| 免费人成在线观看| 精品亚洲精品福利线在观看| 国产一区二区三区朝在线观看| 一本色道久久99精品综合| 国产自产v一区二区三区c| 国产在线视频卡一卡二| 亚洲女人天堂网| 四虎影视成人精品国库在线观看| 欧美一区二区三区综合| 91一区二区三区在线观看| 少妇一级淫片日本| 欧美激情xxxxx| 你懂的视频欧美| 中文字幕一区二区三区四| 午夜精品视频在线观看| 自拍视频在线| 狠狠色综合色区| 久久99日本精品| 欧美激情亚洲综合| 精品国产一区二区三区四区在线观看 | 久久五月天婷婷| 国产主播一区二区| 久草手机在线观看| 久久精品2019中文字幕| 丝袜av一区| 欧洲美女亚洲激情| 日韩欧美在线观看| 最新黄网在线观看| 日韩精品久久久| 国产成人av一区二区三区在线 | 毛片av一区二区三区| 国产成人亚洲欧洲在线| 色播久久人人爽人人爽人人片视av| 国产精品网站在线看| 午夜国产福利在线观看| 日韩欧美999| 国产美女一区视频|