css3和html5,不會js也可以做動畫—3D翻轉
本案例主要是css3和html5,不會js也可以做動畫◕.◕
一、首先看下主要需要的樣式:
就這麼多,水平有限就不細講啦!
3個效果預設樣式如上圖
三、html結構如下:
3個容器6個盒子,當滑鼠經過時:
1.box1繞X軸(transform-origin預設容器中心),翻轉180°至背面box2,滑鼠移開翻回
2.box3繞Y軸(transform-origin預設容器中心),翻轉180°至背面box4,滑鼠移開翻回
3.box5,box6繞Z軸,(transform-origin分別為容器左右),翻轉180°,滑鼠移開翻回
<body> <div class="container" ontouchstart="this.classList.toggle('hover');"> <div class="box1"> <span>hello~</span> </div> <div class="box2"> <span>bye~</span> </div> </div> <div class="container" ontouchstart="this.classList.toggle('hover');"> <div class="box3"> <span>hello~</span> </div> <div class="box4"> <span>bye~</span> </div> </div> <div class="container" ontouchstart="this.classList.toggle('hover');"> <div class="box5"> <span>bye~</span> </div> <div class="box6"> <span>hello~</span> </div> </div> </body>
四、下麵是樣式:
1.容器上加了perspective子元素box有透視效果
2.box2,box4是背面所以先翻轉-180°,這樣當翻到後面再翻回時符合正常視覺
3.每個box都加了backface-visibility:隱藏被旋轉的 div 元素的背面
4.box5,box6,改了旋轉中心點
<style> .container { perspective: 400px; transform-style: preserve-3d; position: relative; } .container, .box1, .box2, .box3, .box4, .box5, .box6 { width: 260px; height: 160px; } .box1, .box2, .box3, .box4, .box5, .box6 { backface-visibility: hidden; transition: 1s; transform-style: preserve-3d; position: absolute; top: 0; left: 300px; text-align: center; } .box1 { background-color:pink; } .box2 { background-color:red; transform: rotateX(-180deg); } .box3 { background-color:red; } .box4 { background-color:pink; transform: rotateY(-180deg); } .box5 { background-color:red; transform-origin:left; } .box6 { background-color:pink; transform-origin:right; } span{ font-size: 20px; line-height: 160px; } .container:hover .box1 {transform: rotateX(180deg);} .container:hover .box2 {transform: rotateX(0deg);} .container:hover .box3 {transform: rotateY(180deg);} .container:hover .box4 {transform: rotateY(0deg);} .container:hover .box5 {transform: rotateZ(180deg);} .container:hover .box6 {transform: rotateZ(-180deg);} </style>
是不是很簡單,接下來隨意翻騰吧~
五、結語
希望讀到這裡對您有所幫助,錯誤請指正,文章不定期更改或更新,轉載請註明出處,方便溯源。