CSS3百葉窗3D效果是一種炫酷的前端設(shè)計(jì)效果,它可以讓網(wǎng)頁元素像百葉窗一樣旋轉(zhuǎn)并向中間聚攏。
/* CSS代碼 */ .baiyechuang{ position: relative; overflow: hidden; perspective: 1200px; } .baiyechuang .item{ position: absolute; top: 0; left: 0; width: 100%; height: 100%; transform-origin: center center; transition: transform 1s ease-in-out; } .baiyechuang .item:nth-child(1){ transform: rotateY(0deg) translateZ(0px); z-index: 2; } .baiyechuang .item:nth-child(2){ transform: rotateY(-90deg) translateZ(0px); z-index: 3; } .baiyechuang .item:nth-child(3){ transform: rotateY(-180deg) translateZ(0px); z-index: 4; } .baiyechuang .item:nth-child(4){ transform: rotateY(-270deg) translateZ(0px); z-index: 3; } .baiyechuang:hover .item:nth-child(1){ transform: rotateY(90deg) translateZ(50%); } .baiyechuang:hover .item:nth-child(2){ transform: rotateY(0deg) translateZ(50%); } .baiyechuang:hover .item:nth-child(3){ transform: rotateY(-90deg) translateZ(50%); } .baiyechuang:hover .item:nth-child(4){ transform: rotateY(-180deg) translateZ(50%); }
首先需要為一個(gè)包含所有網(wǎng)頁元素的容器設(shè)置position: relative;
,并將其內(nèi)部元素設(shè)置為絕對定位,即position: absolute;
。
然后需要為容器設(shè)置perspective: 1200px;
,以便在旋轉(zhuǎn)前景元素時(shí)添加透視效果。
接下來設(shè)置每個(gè)元素的起始位置和旋轉(zhuǎn)中心,即transform-origin: center center;
。然后給每個(gè)元素設(shè)置不同的 z-index 值,確保它們在 3D 空間中正確地重疊。
最后,在鼠標(biāo)懸停時(shí),通過設(shè)置transform: rotateY(angle) translateZ(distance)
,使每個(gè)元素按照規(guī)定的順序旋轉(zhuǎn),并向容器中心聚攏。其中 angle 是旋轉(zhuǎn)角度,distance 是元素與容器中心的距離。