抖音是目前非常熱門的一款短視頻社交應用,它不僅能夠讓用戶拍攝、上傳自己的短視頻,還提供了一種非常有趣的 "立體相冊" 功能。下面給大家分享一下這個功能的實現代碼。
.cube-wrap { position: relative; width: 300px; height: 500px; perspective: 1000px; } .cube-wrap .cube { position: absolute; width: 100%; height: 100%; transform-style: preserve-3d; } .cube-wrap .cube .side { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; overflow: hidden; } .cube-wrap .cube .side img { position: absolute; width: 100%; height: 100%; object-fit: cover; } .cube-wrap .cube .side.front { transform: rotateY(0deg) translateZ(150px); } .cube-wrap .cube .side.right { transform: rotateY(-90deg) translateZ(150px); } .cube-wrap .cube .side.back { transform: rotateY(-180deg) translateZ(150px); } .cube-wrap .cube .side.left { transform: rotateY(90deg) translateZ(150px); } .cube-wrap .cube .side.top { transform: rotateX(90deg) translateZ(150px); } .cube-wrap .cube .side.bottom { transform: rotateX(-90deg) translateZ(150px); } .cube-wrap .cube:hover .side { opacity: 0.5; } .cube-wrap .cube:hover .side.front { transform: rotateY(0deg) translateZ(200px); } .cube-wrap .cube:hover .side.right { transform: rotateY(-90deg) translateZ(200px); } .cube-wrap .cube:hover .side.back { transform: rotateY(-180deg) translateZ(200px); } .cube-wrap .cube:hover .side.left { transform: rotateY(90deg) translateZ(200px); } .cube-wrap .cube:hover .side.top { transform: rotateX(90deg) translateZ(200px); } .cube-wrap .cube:hover .side.bottom { transform: rotateX(-90deg) translateZ(200px); }
以上就是抖音立體相冊所使用的 CSS 代碼,其中會用到 transform-style 屬性、transform 屬性、backface-visibility 屬性和 perspective 屬性等。如果你需要實現一個類似的效果,可以參考以上代碼進行實現。