CSS3向下翻書的效果可以給網(wǎng)頁(yè)帶來(lái)非常震撼的效果,讓網(wǎng)頁(yè)行文更加生動(dòng)有趣。以下代碼使用了CSS3的轉(zhuǎn)換(transform)屬性、過(guò)渡(transition)屬性以及偽元素(::before和::after)來(lái)實(shí)現(xiàn)這一效果。
.book { position: relative; width: 400px; height: 580px; margin: 100px auto; perspective: 1200px; } .book:hover .page_top::before, .book:hover .page_top { transform: rotateX(-180deg); transition-duration: 0.8s; transition-timing-function: ease-out; transition-delay: 0.2s; } .book:hover .page_bottom::before, .book:hover .page_bottom { transform: rotateX(180deg); transition-duration: 0.8s; transition-timing-function: ease-out; } .book .page_top, .book .page_bottom { position: absolute; width: 100%; height: 50%; background-color: #f2f2f2; transform-origin: top center; box-shadow: 0 10px 20px rgba(0,0,0,0.1); } .book .page_top::before, .book .page_bottom::before { content: ""; position: absolute; width: 100%; height: 100%; background-color: #fff; box-shadow: -5px 5px 15px rgba(0,0,0,0.2); transform-origin: top center; } .book .page_top { top: 0; z-index: 2; } .book .page_top::before { transform: rotateX(-5deg); } .book .page_bottom { bottom: 0; transform: rotateX(-180deg); } .book .page_bottom::before { transform: rotateX(5deg); }
以上代碼中,.book是書的容器,設(shè)置了width、height和perspective屬性。.page_top和.page_bottom是書的兩頁(yè),都設(shè)置了position、width、height、background-color、transform-origin和box-shadow屬性。::before是偽元素,用于模擬頁(yè)面的彎曲效果。
通過(guò):hover偽類和過(guò)渡屬性,當(dāng)鼠標(biāo)移動(dòng)到書的容器上時(shí),兩頁(yè)的transform屬性就會(huì)發(fā)生變化,從而實(shí)現(xiàn)向下翻頁(yè)的效果。
在實(shí)際運(yùn)用中,還可以加入其它的動(dòng)畫效果,比如在翻頁(yè)時(shí)加入音效,或在翻頁(yè)完成后加入彈出框等交互效果,讓用戶體驗(yàn)更加豐富。