這篇文章給大家分享的是有關純CSS3實現3D翻轉效果的方法的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。
第一步非常簡單,我們簡單畫1個演示方塊,為其添加transition和transform屬性:
// 本示例均使用Sass語法
.block {
width: 200px;
height: 200px;
background: brown;
cursor: pointer;
transition: 0.8s;
&:hover {
transform: rotateY(180deg);
}
}我們看一看這時候的效果:

這里需要注意的是:transition屬性要寫在.block上而不是hover上,如果只在hover上寫transition,則鼠標移出時并沒有transition的過渡效果,如果我們只將transition寫在hover上:

第二步比較關鍵:我們不難發現始終在1個平面上翻轉,不夠有立體感,因此我們需要稍加改變思路——用2層p嵌套
// html部分
<div class="block">
<div class="block-in"></div>
</div>// CSS部分
.block {
width: 200px;
height: 200px;
cursor: pointer;
&-in {
background: brown;
height: 100%;
transition: 0.8s;
}
&:hover .block-in {
transform: rotateY(180deg);
}
}此時效果沒變,如下:

這個時候關鍵的1步來了:我們需要給外層添加perspective和transform-style屬性,為整個動畫增添3D變形效果:
.block {
width: 200px;
height: 200px;
cursor: pointer;
/* 3D變形 */
transform-style: preserve-3d;
-webkit-perspective: 1000;
-moz-perspective: 1000;
-ms-perspective: 1000;
perspective: 1000;
&-in {
background: brown;
height: 100%;
transition: 0.8s;
}
&:hover .block-in {
transform: rotateY(180deg);
}
}最終實現效果如下:

最終我們總結一下思路:
1.建立內外2層div,鼠標 hover 到外層時,內層div添加翻轉 transform: rotateY(180deg)
2.注意將 transition 屬性添加到需要翻轉的div上,而不是 hover 時
3.外層div添加 perspective 和 transform-style 屬性,最終實現3D翻轉效果
感謝各位的閱讀!關于純CSS3實現3D翻轉效果的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。