精品欧美一区二区三区在线观看 _久久久久国色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)

日韩国产欧美亚洲| 国产精品视频永久免费播放| 911亚洲精选| 国产美女高潮在线| 国产亚洲综合在线| 国产日韩在线亚洲字幕中文| 加勒比av在线播放| 亚欧日韩另类中文欧美| 欧美日韩精品一区二区三区蜜桃| 真人做人试看60分钟免费| 五十路在线观看| 麻豆91在线播放| 久久久久五月天| 天天操天天干天天操天天干| 亚洲大奶少妇| 色综合久久久久综合体| 天天干天天操天天干天天操| 深夜福利视频网站| 久久超碰97中文字幕| 91国产美女视频| 潘金莲一级黄色片| 免费看成人吃奶视频在线| 欧美一区二区三区四区在线观看| www.亚洲天堂网| 在线观看小视频| 国产精品人妖ts系列视频| 国产一区精品视频| 国产成人精品无码高潮| 日韩av成人高清| 97碰碰碰免费色视频| 中文字幕无码日韩专区免费| 亚洲婷婷丁香| 亚洲国产精品久久| 日韩欧美中文视频| 欧美男女视频| 精品国产老师黑色丝袜高跟鞋| 欧美亚洲视频一区| 国产高清视频免费最新在线| 99久久精品免费看国产免费软件| 91九色对白| 精品国产伦一区二区三区| 青青草精品视频| 日本一区二区三区在线播放| 日韩精品一区二区三| 自拍欧美日韩| 久久精品久久久久| 国产精品成人69xxx免费视频| 欧美精品一区二区三区中文字幕| 亚洲免费人成在线视频观看| 日韩www视频| 国产精品对白| 亚洲激情视频网站| 熟女人妻在线视频| 久久视频在线观看| 日韩二区三区在线| 免费无码一区二区三区| 国产精品调教| 日韩av在线高清| 中文字幕免费在线播放| 欧亚精品一区| 精品亚洲国产成av人片传媒 | 麻豆国产一区二区| 国产视频观看一区| 国产又粗又长又黄| 国产精品综合av一区二区国产馆| 91久久在线观看| 99热这里只有精品66| 国产精品一卡二卡在线观看| 999视频在线免费观看| 亚洲黄色在线观看视频| aa级大片欧美| 日本视频一区在线观看| www免费网站在线观看| 国产精品天天看| 黄色免费高清视频| 超碰在线资源| 91精品福利视频| 国产三级生活片| h视频久久久| 亚洲老头老太hd| 国产三级黄色片| 欧美成熟视频| 欧美在线免费视频| 亚洲自拍偷拍另类| 懂色av一区二区三区免费看| 精品视频一区在线| yw193.com尤物在线| 亚洲色图制服丝袜| 久草热视频在线观看| 亚洲四虎影院| 精品乱人伦一区二区三区| 欧美bbbbb性bbbbb视频| 97精品一区二区| 欧美精品videosex性欧美| 免费视频久久久| 狠狠色综合色综合网络| 精品一区久久| 色哟哟免费在线观看 | 福利视频一二区| 欧美黑人疯狂性受xxxxx野外| 欧美日本免费一区二区三区| 无码人妻精品一区二区三| 精品久久影院| 国内精品中文字幕| 一道本无吗一区| 91在线国产福利| av动漫免费观看| 中文字幕21页在线看| 欧美高清视频一二三区 | 亚洲一区二区三区影院| 久久黄色免费看| 综合成人在线| 色系列之999| 91在线视频在线观看| 国产自产v一区二区三区c| 欧美成ee人免费视频| 在线看福利影| 欧美三片在线视频观看| 久久无码专区国产精品s| 日韩情爱电影在线观看| 91国自产精品中文字幕亚洲| av一区二区三| 国产精品女上位| 毛片一区二区三区四区| 亚洲性视频在线| 欧美不卡视频一区发布| 奴色虐av一区二区三区| www.欧美日韩| 日韩视频 中文字幕| 粉嫩91精品久久久久久久99蜜桃| 亚洲精品91美女久久久久久久| 欧美成人777| 蜜臀99久久精品久久久久久软件| 久久综合给合久久狠狠色| 欧美色图天堂| 日韩无一区二区| 欧美一区免费观看| 麻豆国产精品一区二区三区 | 一本一本大道香蕉久在线精品 | 日本精品久久久| 性xxxfllreexxx少妇| 亚洲午夜精品17c| www.欧美com| 午夜欧美精品久久久久久久| 成人国产精品一区二区| 日本在线免费看| 欧美日韩精品三区| 欧美xxxx精品| 久久精品国产久精国产| 五月天色一区| 成人精品国产| 日韩网站免费观看| 一二三四区在线| 国产精品麻豆一区二区| 日本中文字幕观看| 国产精品7m凸凹视频分类| 国产美女精品视频免费观看| 18免费在线视频| 7777精品伊人久久久大香线蕉完整版 | 黄色av网址在线| 亚洲一区电影777| 国产成人av片| 亚洲三级观看| 麻豆精品蜜桃一区二区三区| 美女写真久久影院| 日韩中文字在线| 99在线观看精品视频| 亚洲免费观看高清完整版在线观看 | 91蝌蚪精品视频| 久久久久久久一区二区三区| 日本高清视频免费看| 欧美色播在线播放| 老熟妇一区二区| 狠狠色丁香婷婷综合| 超碰97在线看| 国产精品chinese在线观看| 午夜精品一区二区三区在线视频| 午夜视频免费看| 日本韩国一区二区三区视频| 亚洲一二三四视频| 国产东北露脸精品视频| 国产v片免费观看| 欧美伦理影院| 成人一区二区电影| 18aaaa精品欧美大片h| 亚洲毛片一区二区| 一级淫片免费看| 亚洲成人免费在线| 免费黄色片网站| 国产成人综合自拍| 黄色片久久久久| 重囗味另类老妇506070| 久久久精品国产一区二区三区| 91伊人久久| 欧美激情按摩在线| www.av在线| 亚洲丁香久久久| 亚洲天堂久久久久| 婷婷激情综合网| 永久免费看片直接| 久久婷婷成人综合色| 天天干天天色天天干| 99在线精品免费视频九九视| 亚洲亚洲精品三区日韩精品在线视频| 天堂va欧美ⅴa亚洲va一国产| 66m—66摸成人免费视频| chinese偷拍一区二区三区| 精品国产91洋老外米糕| 中文字幕日本视频| 亚洲福利视频导航| 国产精品视频一区二区在线观看| av电影一区二区| 中文字幕亚洲影院| 三级在线观看一区二区| 成人免费毛片在线观看| 日韩一区欧美| 欧美日韩免费高清| av成人资源| 亚洲自拍另类欧美丝袜| 日韩欧美少妇| 2025国产精品视频| 日本三级韩国三级欧美三级| 原创国产精品91| 午夜视频福利在线观看| 日韩精品一区二区三区中文精品| 在线视频精品免费| 一本色道亚洲精品aⅴ| 九九九国产视频| 中文字幕欧美一| 日本欧美一区二区三区不卡视频| 成人app下载| 丰满饥渴老女人hd| 国产一区不卡精品| 亚洲一级片av| 久色婷婷小香蕉久久| 日本中文字幕片| 国产日韩一区| 国内精品久久久| 伦xxxx在线| 中文字幕一区二区精品| 蝌蚪视频在线播放| 日韩精品在线影院| 日本精品久久久久久| 日韩欧美在线不卡| 国产精品一区二区人人爽| 欧美三级韩国三级日本三斤| 欧美男人天堂网| 欧美亚日韩国产aⅴ精品中极品| 日韩中文字幕在线观看视频| 性做久久久久久| 国产在线视频二区| 亚洲福中文字幕伊人影院| 国产在线视频你懂的| 亚洲图片欧美色图| 日本一区二区网站| 欧美日韩国产影院| 亚洲欧美自拍视频| 日本大香伊一区二区三区| 亚洲欧美一区二区三区在线观看| 精品欧美aⅴ在线网站| 久久精品国产成人av| 欧美日韩人人澡狠狠躁视频| www.com国产| 欧美色综合影院| 亚洲午夜无码久久久久| 欧美日本在线播放| www天堂在线| 亚洲缚视频在线观看| 四虎影院在线播放| 亚洲图片在区色| 麻豆系列在线观看| 欧美激情亚洲综合一区| 欧美激情网站| 国产精品极品在线| 精品伊人久久| 国产亚洲情侣一区二区无| 秋霞影视一区二区三区| 日本视频一区二区在线观看| 91九色精品| 日韩日韩日韩日韩日韩| 久久亚洲影院| 天堂av2020| 成人av在线电影| 久久久久久久久久久久| 成人免费在线播放视频| 91精品国产高潮对白| 色婷婷av一区二区三区之一色屋| 自拍偷拍色综合| 欧美mv和日韩mv国产网站| 视频国产在线观看| 日韩在线资源网| 丁香花在线观看完整版电影| 欧洲中文字幕国产精品| 91精品网站在线观看| 精品国产一区二区三区日日嗨| 精品国产一区二区三区噜噜噜| 米仓穗香在线观看| 久久久久久一区二区| 欧美国产日韩在线视频| 久久免费看少妇高潮| 国产一区二区播放| 欧美性xxxxx极品| 国产强伦人妻毛片| 亚洲色图国产精品| 国产区美女在线| 国产在线不卡精品| 日本国产精品| 免费的av在线| 日韩av午夜在线观看| 88av在线播放| 亚洲日本在线a| 日韩久久久久久久久久| 亚洲高清免费观看高清完整版| 午夜视频成人| 欧美在线播放视频| 一区二区亚洲视频| 亚洲视频在线二区| 久久免费国产| 亚洲中文字幕无码一区| 一区在线播放视频| 波多野结衣在线观看视频| 亚洲成在人线av| av中文字幕在线播放| 国产精品网址在线| 亚洲精品播放| 奇米精品一区二区三区| 国产成人av影院| 亚洲一级生活片| 欧美日韩中文字幕精品| 你懂的免费在线观看| 亚州国产精品久久久| 国产精品第一视频| 综合久久av| 欧美lavv| 亚洲欧美日韩国产一区| 91精品又粗又猛又爽| 亚洲精品视频免费看| 亚洲网站免费观看| 中国人与牲禽动交精品| 忘忧草在线www成人影院| 久久综合伊人77777麻豆| 狠狠入ady亚洲精品经典电影| 亚洲第一成肉网| 成人欧美一区二区三区白人| 亚洲影视一区二区| 在线观看91久久久久久| 欧美日韩精品免费观看视欧美高清免费大片| 国产精品一区二区av| 怡红院精品视频在线观看极品| 久久无码专区国产精品s| 一级特黄大欧美久久久| www.99视频| 久久免费视频观看| 国语一区二区三区| 人人妻人人添人人爽欧美一区| 99久久久久久| 亚洲综合图片网| 亚洲一级一级97网| 国产91欧美| 粉嫩av一区二区三区天美传媒| 国产精品一区在线| 国产性猛交普通话对白| 精品国产髙清在线看国产毛片| 538在线观看| 美媛馆国产精品一区二区| 日韩制服丝袜av| 911国产在线| 欧美成人bangbros| 国产伦理精品| 欧美午夜精品久久久久免费视| 日韩电影在线一区| 婷婷久久综合网| 亚洲成av人乱码色午夜| 竹内纱里奈兽皇系列在线观看| 欧美日韩一区二区三区在线视频| 日日摸夜夜添夜夜添国产精品| 国产三级aaa| 精品久久国产老人久久综合| 香蕉伊大人中文在线观看| 日韩精品一区二区三区外面| 激情综合五月天| 日韩av无码中文字幕| 国产香蕉一区二区三区在线视频 | 成人精品一区二区| 成人国产精品色哟哟| 99视频精品| 亚洲综合图片一区| 亚洲国产成人久久综合| av在线日韩| 国产精品久久久久7777| 国产欧美一区二区精品性| 97久久人国产精品婷婷| 午夜精品福利在线观看| 久久国产成人精品| 无码任你躁久久久久久老妇| 欧美午夜电影一区| 2018av在线| 中文字幕乱码一区二区三区| 99久久久精品免费观看国产蜜| 中文字幕在线观看欧美|