日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

一篇帶你學習 CSS 實現(xiàn)卷軸滾動效果

來源: 責編: 時間:2024-05-29 08:57:45 236觀看
導讀「慶余年2」 終于開播了~最近起點讀書APP內上架了慶余年典藏書,最大的特色是里面新加入了全新的閱讀皮膚,一個擬物化的卷軸滾動效果,效果如下:就是在拖動頁面時,卷軸會隨著頁面的滾動而展開或卷起,就像在拖動真的畫布一樣,非

「慶余年2」 終于開播了~最近起點讀書APP內上架了慶余年典藏書,最大的特色是里面新加入了全新的閱讀皮膚,一個擬物化的卷軸滾動效果,效果如下:RMP28資訊網——每日最新資訊28at.com

圖片RMP28資訊網——每日最新資訊28at.com

就是在拖動頁面時,卷軸會隨著頁面的滾動而展開或卷起,就像在拖動真的畫布一樣,非常舒適,錄屏可能看著不是很清晰,強烈建議去端內自行體驗。RMP28資訊網——每日最新資訊28at.com

當時看到這個效果時就在思考,如何在 web 中也實現(xiàn)這樣一個效果呢?RMP28資訊網——每日最新資訊28at.com

經過一番琢磨,發(fā)現(xiàn)僅使用 CSS 就能完成這樣的效果。下面是我復刻的效果。RMP28資訊網——每日最新資訊28at.com

圖片RMP28資訊網——每日最新資訊28at.com

這是如何實現(xiàn)呢?一起看看吧RMP28資訊網——每日最新資訊28at.com

一、CSS卷軸滾動的原理

首先 CSS 中并沒有真正的 3d 滾動,立方體還可以勉強拼接,這種圓形的不行,因此我們需要用其他方式來實現(xiàn)。RMP28資訊網——每日最新資訊28at.com

這里其實是一個最簡單的平移動畫,只需要將紋理上下無縫平移,結合漸變和陰影,就能得到看似滾動的效果了。RMP28資訊網——每日最新資訊28at.com

先簡單布局一下。RMP28資訊網——每日最新資訊28at.com

<div class="reel">  <div class="reel-bg"></div></div>

這里要用到卷軸的素材圖片,是這樣的。RMP28資訊網——每日最新資訊28at.com

這樣就能得到卷軸的結構了。RMP28資訊網——每日最新資訊28at.com

效果如下:RMP28資訊網——每日最新資訊28at.com

RMP28資訊網——每日最新資訊28at.com

現(xiàn)在看著非常扁平,沒有立體感,主要是紋理沒有融入到背景之中。RMP28資訊網——每日最新資訊28at.com

如何將紋理完美的融合到后面的背景呢?沒錯,需要用到混合模式,這里用正片疊底就行了。RMP28資訊網——每日最新資訊28at.com

.reel-bg{  /**/  mix-blend-mode: multiply;}

效果就好很多了。RMP28資訊網——每日最新資訊28at.com

RMP28資訊網——每日最新資訊28at.com

最后給卷軸加點陰影,超出隱藏。RMP28資訊網——每日最新資訊28at.com

.reel{  /**/  overflow: hidden;  box-shadow: 0 5px 10px 5px rgba(0,0,0,.3), 0 10px 20px 10px rgba(0,0,0,.5);}

這樣就比較真實了。RMP28資訊網——每日最新資訊28at.com

RMP28資訊網——每日最新資訊28at.com

滾動效果出來了,如何和頁面滾動關聯(lián)起來呢?接著往下看。RMP28資訊網——每日最新資訊28at.com

二、CSS滾動驅動動畫

回到這里,先把整個布局完善一下。RMP28資訊網——每日最新資訊28at.com

<body>  <div class="reel">    <div class="reel-bg"></div>  </div>  <article>    <p>范慎很困難地撐著上眼皮,看著指頭算自己這輩子做過些什么有意義的事情,結果右手五根瘦成筷子一樣的指頭還沒有數完,他就嘆了一口氣,很傷心地放棄了這個工作。病房里的藥水味總是這么刺鼻,旁邊那床的老爺子前兩天已經去地藏王菩薩那里報道了,大概再過幾天就輪到自己吧。他得了某種怪病,重癥肌無力,就是特別適合言情小說男主角的那種病。據說沒得醫(yī),將來嗝屁的那天什么都動不了,只有眼淚可以流下來。痛!</p>    <p>范慎很困難地撐著上眼皮,看著指頭算自己這輩子做過些什么有意義的事情,結果右手五根瘦成筷子一樣的指頭還沒有數完,他就嘆了一口氣,很傷心地放棄了這個工作。病房里的藥水味總是這么刺鼻,旁邊那床的老爺子前兩天已經去地藏王菩薩那里報道了,大概再過幾天就輪到自己吧。他得了某種怪病,重癥肌無力,就是特別適合言情小說男主角的那種病。據說沒得醫(yī),將來嗝屁的那天什么都動不了,只有眼淚可以流下來。痛!</p>    <!--很多文本-->  </article></body>

簡單修飾一下,由于卷軸要固定到頂部,可以采用sticky布局。RMP28資訊網——每日最新資訊28at.com

html{  background-color: #22312D;  font-family: cursive;}body{  margin: 0;}article{  background-color: #F5EBD4;  padding: 1em 0.5em;  border-left: 10px solid #405C53;  border-right: 10px solid #405C53;  margin: 0 15px;}p{  margin: 0;  padding: 0.2em 0;  color: #2C402E;  line-height: 150%;  text-indent: 2em;}h1{  text-align: center;  color: #F5EBD4;}

效果如下:RMP28資訊網——每日最新資訊28at.com

RMP28資訊網——每日最新資訊28at.com

不過這里還有點問題,由于是整個頁面在滾動,內容滾到頂部會漏出來,如下:RMP28資訊網——每日最新資訊28at.com

RMP28資訊網——每日最新資訊28at.com

現(xiàn)在就讓卷軸滾動和頁面滾動聯(lián)動起來, 非常簡單,只需要添加animation-timeline屬性就行了,設置滾動時間線為root,如下:RMP28資訊網——每日最新資訊28at.com

.reel-bg{  animation: scroll 1s linear forwards;  animation-timeline: scroll(root);}

這樣在頁面滾動時卷軸也跟著“轉動”了。RMP28資訊網——每日最新資訊28at.com

RMP28資訊網——每日最新資訊28at.com

但看著卷軸轉地是不是有點慢了?RMP28資訊網——每日最新資訊28at.com

確實是這樣,這個時候表示頁面從頭滾到到底部,執(zhí)行一次動畫,也就是滾動一圈,所以頁面內容越多,滾動距離越長,那么卷軸轉的也就越慢。RMP28資訊網——每日最新資訊28at.com

下面來修復這個問題RMP28資訊網——每日最新資訊28at.com

三、優(yōu)化卷軸滾動速度

簡單來處理,可以給個合適的動畫次數,比如:RMP28資訊網——每日最新資訊28at.com

.reel-bg{  animation: scroll 1s linear forwards 5;  animation-timeline: scroll(root);}

這樣表示頁面從頭滾到到底部,會執(zhí)行5次動畫,也就是相當于會滾動5圈,所以看著速度就變快了。RMP28資訊網——每日最新資訊28at.com

RMP28資訊網——每日最新資訊28at.com

現(xiàn)在就舒服多了。RMP28資訊網——每日最新資訊28at.com

不過這種處理方式有個問題,動畫次數是跟內容長度強相關的,如果在向下滾動時動態(tài)加載內容,就需要更新這個值,稍顯麻煩。RMP28資訊網——每日最新資訊28at.com

那么,有沒有辦法讓滾動速度保持均衡呢?也就是無論內容多少,速度都是一致的。RMP28資訊網——每日最新資訊28at.com

這就需要用到 CSS 動畫范圍區(qū)間了,也就是animation-range,簡單來講就是設置滾動區(qū)間。RMP28資訊網——每日最新資訊28at.com

圖片RMP28資訊網——每日最新資訊28at.com

核心實現(xiàn)其實就這幾行,是不是非常簡單。RMP28資訊網——每日最新資訊28at.com

.reel-bg{  --s: 999999;  animation: scroll 1s linear forwards calc(var(--s)/184/3.14);  animation-timeline: scroll(root);  animation-range: 0 calc(var(--s) * 1px);}

四、不支持瀏覽器兼容

雖然 CSS 實現(xiàn)很簡單,但是兼容性還不行,截至目前(2024年4月27日)僅支持Chrome 115+。RMP28資訊網——每日最新資訊28at.com

RMP28資訊網——每日最新資訊28at.com

你也可以訪問以下鏈接查看真實效果。RMP28資訊網——每日最新資訊28at.com

  • CSS QYN book (juejin.cn)[1]
  • CSS QYN book (codepen.io)[2]

五、總結一下

以上就是本文的全部內容了,一個有趣的交互效果,你學到了嗎,下面總結一下本文重點。RMP28資訊網——每日最新資訊28at.com

  • CSS卷軸滾動的原理其實是一個最簡單的平移動畫,只需要將紋理上下無縫平移,結合漸變和陰影,就能得到看似滾動的效果了。
  • 簡單的平移動畫看著非常扁平,沒有立體感,主要是紋理沒有融入到背景之中。
  • 利用混合模式正片疊底,可以讓平移動畫看著像滾動動畫了。
  • CSS 滾動驅動動畫可以讓頁面滾動和卷軸滾動聯(lián)動起來。
  • 默認情況下,頁面從頭滾到到底部,執(zhí)行一次動畫,也就是滾動一圈,所以頁面內容越多,滾動距離越長,卷軸轉的也就越慢。
  • 可以通過改變動畫重復次數來調整卷軸滾動速度,局限是需要根據頁面滾動長度來計算合適的數值。
  • 用足夠大的 CSS 動畫范圍區(qū)間(animation-range)配合動畫重復次數可以實現(xiàn)卷軸滾動速度保持均衡。
  • 目前兼容性還有些差,可以用CSS.supports做兼容處理。

[1]CSS QYN book (juejin.cn): https://code.juejin.cn/pen/7362400098958966793。RMP28資訊網——每日最新資訊28at.com

[2]CSS QYN book (codepen.io): https://codepen.io/xboxyan/pen/VwNqEoE。RMP28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-91369-0.html一篇帶你學習 CSS 實現(xiàn)卷軸滾動效果

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Python虛擬環(huán)境的15個管理技巧

下一篇: 12306技術內幕,你知道嗎?

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
国产三级欧美三级| 欧美国产综合视频| 亚洲欧美久久久久一区二区三区| 中国日韩欧美久久久久久久久| 一本一本久久a久久精品综合妖精| 一区二区三区www| 欧美一区二区三区免费看 | 亚洲日本中文字幕区| 亚洲最新视频在线| 性8sex亚洲区入口| 蜜臀av在线播放一区二区三区| 欧美精选一区| 国产精品亚洲精品| 亚洲国产精品精华液网站| 一本色道久久综合狠狠躁的推荐| 欧美亚洲在线播放| 噜噜噜躁狠狠躁狠狠精品视频 | 欧美视频一区二区三区| 国产午夜精品久久久久久免费视 | 精品av久久707| 夜夜精品视频一区二区| 久久久www成人免费精品| 欧美日韩成人在线播放| 国产亚洲成av人在线观看导航| 亚洲欧洲日韩在线| 欧美制服第一页| 欧美人成在线| 黄色av日韩| 亚洲午夜精品久久| 欧美 日韩 国产 一区| 国产精品一区一区| 亚洲精品美女在线观看| 久久精品国产2020观看福利| 欧美日韩在线电影| 亚洲大胆女人| 久久精品国产第一区二区三区| 欧美日韩精品久久| 在线观看欧美黄色| 欧美在线电影| 国产精品va在线播放| 亚洲国产日韩美| 久久国产精品99国产精| 国产精品theporn| 亚洲欧洲精品天堂一级| 久久精品国产99精品国产亚洲性色| 欧美视频在线视频| 亚洲七七久久综合桃花剧情介绍| 久久riav二区三区| 国产精品久久久久久久久久妞妞| 亚洲激情国产精品| 久久免费国产| 好吊妞**欧美| 久久精品国产亚洲精品| 国产精品一区毛片| 亚洲网站在线| 欧美日一区二区在线观看| 99re66热这里只有精品4| 欧美成人午夜影院| 亚洲电影激情视频网站| 久久久精品一区| 国产亚洲一区二区在线观看| 午夜精品短视频| 国产精品嫩草99av在线| 亚洲一区网站| 国产精品国产亚洲精品看不卡15 | 国产综合久久久久久鬼色| 亚洲男人天堂2024| 国产精品高清免费在线观看| 一区二区三区日韩| 欧美日韩国产高清| 亚洲免费不卡| 午夜精品一区二区三区在线视| 欧美日韩一区二区视频在线 | 久久精品国产欧美激情| 国产综合网站| 久久久久欧美精品| 精久久久久久久久久久| 久久久久久欧美| 激情五月婷婷综合| 久久婷婷成人综合色| 激情综合视频| 另类酷文…触手系列精品集v1小说| 狠狠色丁香婷婷综合影院| 久久久国产视频91| 伊人婷婷久久| 欧美大片18| 亚洲伦理网站| 欧美丝袜一区二区| 亚洲综合二区| 国产亚洲福利| 久久综合九色九九| 亚洲黄色大片| 欧美日韩精品高清| 亚洲一区欧美| 国产视频亚洲精品| 久久亚洲高清| 亚洲人成啪啪网站| 欧美日韩在线观看一区二区三区| 亚洲一区日韩| 国产性天天综合网| 免费在线欧美黄色| 亚洲精选大片| 国产精品久久久久久久9999| 欧美一区二区三区四区夜夜大片| 国产专区欧美精品| 欧美成年人网| 亚洲图片自拍偷拍| 国模套图日韩精品一区二区| 欧美www在线| 亚洲视频网站在线观看| 国产情人综合久久777777| 久久亚洲精品一区二区| 亚洲免费观看高清完整版在线观看熊| 欧美三级网页| 久久www成人_看片免费不卡| 亚洲国产精品第一区二区| 欧美午夜精品久久久久久孕妇| 欧美尤物巨大精品爽| 亚洲国产精品精华液2区45| 欧美视频日韩视频在线观看| 久久国产一区二区三区| 亚洲人www| 国产精品日韩在线播放| 玖玖国产精品视频| 亚洲调教视频在线观看| 国内精品美女av在线播放| 欧美激情一区二区三区不卡| 亚洲欧美日本视频在线观看| 在线观看91久久久久久| 欧美视频三区在线播放| 久久免费高清| 亚洲一区二区黄色| 一区二区三区在线免费观看 | 亚洲国产精品久久精品怡红院| 欧美日韩国产123区| 欧美淫片网站| 亚洲免费观看高清在线观看| 国产香蕉97碰碰久久人人| 欧美成人激情视频| 亚洲欧美日韩国产综合| 亚洲国产专区| 国产欧美日韩在线播放| 欧美精品国产精品| 久久精品在这里| 亚洲视频大全| 1769国内精品视频在线播放| 国产精品国产a| 欧美岛国激情| 久久精品亚洲精品| 一本色道久久综合亚洲91| 国内自拍一区| 国产精品久久久久9999| 欧美成人精品在线视频| 午夜免费电影一区在线观看 | 久久亚洲一区| 亚洲欧美日韩中文播放| 亚洲人成网站777色婷婷| 国产日产精品一区二区三区四区的观看方式 | 欧美福利一区二区| 欧美在线欧美在线| 中文在线资源观看网站视频免费不卡| 伊人伊人伊人久久| 国产麻豆视频精品| 欧美日韩中文在线| 欧美成年人视频| 国产视频一区在线观看一区免费| 欧美成人一品| 久久久久久亚洲精品中文字幕 | 国产精品欧美久久| 欧美日本韩国| 免费成人高清| 久久久91精品国产| 亚洲欧美中文日韩v在线观看| 亚洲精品永久免费精品| 伊人伊人伊人久久| 国产一区二区三区在线播放免费观看 | 欧美日本在线视频| 久久久亚洲精品一区二区三区 | 理论片一区二区在线| 午夜免费在线观看精品视频| 99在线精品观看| 亚洲区在线播放| 亚洲国产精品久久久久秋霞影院| 国产无遮挡一区二区三区毛片日本| 欧美性猛交xxxx乱大交退制版 | 国产欧美日韩视频在线观看| 国产精品成人一区二区网站软件| 欧美国产日韩一区二区| 免费高清在线一区| 久久婷婷久久| 久久免费视频在线观看| 久久精品91| 久久国产精品久久w女人spa| 亚洲欧美日韩在线高清直播| 亚洲一区二区精品在线| 一区二区精品国产| 一区二区高清视频在线观看| 99国产精品久久| 夜夜嗨av一区二区三区四区| 一区二区三区日韩精品视频| 99视频精品免费观看| 一区二区三区精品久久久| 一区二区三区视频在线观看| 亚洲天堂成人|