作為前端開發(fā)人員的必修課,CSS3能帶我們完成許多基本動(dòng)效,本期我們將用CSS3實(shí)現(xiàn)hover翻轉(zhuǎn)效果~
第一步非常簡單,我們簡單畫1個(gè)演示方塊,為其 添加transition和transform屬性 :
// 本示例均使用Sass語法.block { width: 200px; height: 200px; background: brown; cursor: pointer; transition: 0.8s; &:hover { transform: rotateY(180deg); }}
我們看一看這時(shí)候的效果:
這里 需要注意 的是: transition屬性要寫在.block上而不是hover上 ,如果只在hover上寫transition,則鼠標(biāo)移出時(shí)并沒有transition的過渡效果,如果我們只將transition寫在hover上:
第二步比較關(guān)鍵:我們不難發(fā)現(xiàn)始終在1個(gè)平面上翻轉(zhuǎn),不夠有立體感,因此我們需要稍加改變思路—— 用2層div嵌套
// 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); }}
此時(shí)效果沒變,如下:
這個(gè)時(shí)候 關(guān)鍵的1步 來了:我們需要 給外層添加perspective和transform-style屬性 ,為整個(gè)動(dòng)畫增添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); }}
最終實(shí)現(xiàn)效果如下:
最終我們 總結(jié)一下思路 :
1.建立內(nèi)外2層div,鼠標(biāo) hover 到外層時(shí),內(nèi)層div添加翻轉(zhuǎn) transform: rotateY(180deg)
2.注意將 transition 屬性添加到需要翻轉(zhuǎn)的div上,而不是 hover 時(shí)
3.外層div添加 perspective 和 transform-style 屬性,最終實(shí)現(xiàn)3D翻轉(zhuǎn)效果
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選