CSS3 3D旋轉木馬是一種通過CSS3技術實現的3D旋轉效果,常用于制作旋轉的圖片或者圖片集合展示。下面我們來介紹具體的實現過程:
.carousel{ perspective: 1200px; /*透視*/ position: relative; /*相對定位*/ height: 500px; width: 800px; margin: 0 auto; /*自動居中*/ } .carousel .item{ position: absolute; /*絕對定位*/ top: 0; left: 0; width: 100%; height: 100%; transform-style: preserve-3d; /*開啟3D變換*/ backface-visibility: hidden; /*隱藏背面*/ transition: transform 1s; /*設置過渡效果*/ } .carousel .item.active{ transform: rotateY(0deg) translateZ(150px); /*激活狀態*/ } .carousel .item.next{ transform: rotateY(90deg) translateZ(-150px); /*下一個*/ } .carousel .item.prev{ transform: rotateY(-90deg) translateZ(-150px); /*上一個*/ } .carousel .item.right2{ transform: rotateY(180deg) translateZ(-150px); /*右側第二個*/ } .carousel .item.left2{ transform: rotateY(-180deg) translateZ(-150px); /*左側第二個*/ } .carousel .item.right3{ transform: rotateY(270deg) translateZ(-150px); /*右側第三個*/ } .carousel .item.left3{ transform: rotateY(-270deg) translateZ(-150px); /*左側第三個*/ } .carousel .item img{ position: absolute; /*相對定位*/ top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; /*圖片適配*/ }
首先,我們需要一個包含所有項的容器,給它設置透視和相對定位屬性,然后每個項需要設置絕對定位、3D變換和隱藏背面。當某個項處于激活狀態時,我們需要把它旋轉到正面和上方,并將其移動到透視點,其他項按順時針或逆時針方向rotateY旋轉相應角度,然后移動到相應位置。最后,為項中的圖片設置逆向適配,完成整個旋轉木馬的效果。