純CSS視差滾動

2021-07-15 05:51:31 字數 584 閱讀 1999

參考旭哥的:

demo點這裡

class="box">

class="curtain">

class="comehere">div>

div>

* 

.box

.curtain

.comehere

1.原理就是:

利用perspective、translatez,使得影象在視覺上縮放,然後通過scale將縮放至原來的大小,但是對於滾動條來說仍然是相對於scale之後的大小的滾動,和z軸上視覺的大小沒有關係。

2.但是這個方法有個問題,必須要讓緊貼的外層有滾動條,html或body的滾動條是沒有用。那麼如何計算box的最大高度呢? 這裡要注意transfrom-origin的問題,不要看translatez之後的位置,要看只scale之後的位置,小心溢位被裁哦~

3.如何計算scale的具體值呢,要讓回到原來的大小。

借用下別人的圖:

簡單的數學,不難計算出 scale的值應該為1 + (translatez * -1) /perspective

css實現視差滾動

視差滾動 parallax scrolling 是指讓多層背景以不同的速度移動,形成立體的運動效果,帶來非常出色的視覺體驗。把背景的寬高鋪滿乙個瀏覽器可視區 width 100 height 瀏覽器可視高度將背景設定為相對於視口固定 background attachment fixed class...

視差滾動效果

確實,早期大部分視差滾動效果基本上就是如此,滾動事件是前提,然後要麼是直接改變位置,要麼如果是使用了背景,則改變背景的background position,不過實際上這種方法是存在缺陷的。監聽滾動事件,要想做到盡可能地流暢渲染效果,就不可以讓滾動事件 節流防抖動 throttle debounce...

滾動視差 01

先看一下示例展示第四屏的效果 思路 視差滾動到相應的容器時,讓背景固定不動,等滑到某個高度時恢復正常滾動,這裡是用兩張相同的做交替覆蓋,由於相同,因此看不出變化,從而達到一定的滾動視差效果,當然滾動視差效果有很多態別,這只是其中的一種方式,而且還沒有達到像示例展示那裡的效果,還需要對背景進行一定的優...