css+js實現翻牌效果的方法

第一種方式:

首先,我們在html中有這樣一個布局:

不要小看外面那個div,它可是本次內容不可少的呢,沒了它,后面的效果就沒法實現了呢!局布好了,接下來就要開始搞樣式了。最先要搞的肯定是外面的哈,給它一個width,height,大少各位大神自己定吧,小妹我這就先給它定個200*200吧。外面的搞定了,里面的也要開始了,這里都是給200*200。此時在瀏覽器中一看發現div1和div2是上下顯示的,一個上一個下,這就對了,要知道div是塊元素,它要占據一整行的呢,但這對我們之前說的前后肯定是有矛盾的,不要急,給它一個絕對定位position: absolute;這樣兩個div的中心就重合啦。為了區別兩個div,這里我們要分別給它們不一樣的背景色。前期準備工作都差不搞定了,接下來我們來看看怎么樣實現效果吧!

我們是要實現翻牌效果,一聽就知道肯定是要有旋轉的,這就要用到css3里的新屬性transform:rotateY(?deg);有人有可能會問為什么是rotateY呢,這你就不知道了吧,翻牌,當然是沿著Y軸轉啊,哈哈!所以當鼠標移到div上時我們就要讓它實現旋轉效果,那么此時外層div的用處就來啦,不管用哪個小div都無法讓它們同時發生旋轉,除非我們的鼠標是點在外面那個div上,于是就有這個代碼了,

.outer:hover .div1{

transform:rotateY(-180deg);

}

.outer:hover .div2{

transform:rotateY(0deg);

}

旋轉是有了,可是沒有任何過渡效果的旋轉看起來是很難看的,所以在這里,我們要給它們一個過渡效果,就要用到css3里的新屬性transition:all 2s;此處的all是它所有的效果都過渡。講到這里我們其實一直都沒處理一件事,那就是怎么讓當前面的旋轉到后面,后面的緊跟其后出現, 這就是backface-visibility:hidden;一個在圖片變換里很重要的一個屬性,它的意思是當圖片轉到顯示屏看不見的地方就消失了。就是說本來是正面的, 我們能看么到,但是當它沿著Y軸轉180度后我們就不能看到它了,如果不加這個屬性我們是能看到旋轉后的反圖片的,加了它就看不到了。所以我們要把這個屬性加到兩個小div上。而且為了實現此效果,我們在開始的時候還得讓兩個小div一個沒有旋轉,我們能看到,另一個也就是在背后的那個放轉180度,這樣當第一個div 開始旋轉后我們就不會立即看到第二個div,而是等它旋轉到看不到的地方,第二個div 才會出現。具體代碼如下所示:


第二種方式:

翻牌的原理:

1、父容器設置設置perspective,讓其子元素支持3d透視。

注:perspective 屬性定義 3D 元素距視圖的距離,以像素計。該屬性允許您改變 3D 元素查看 3D 元素的視圖。當為元素定義 perspective 屬性時,其子元素會獲得透視效果,而不是元素本身。

2、牌正面和背面設置absolute屬性,讓正面的背面處于同一水平線上,用z-index屬性設置背面朝上

3、讓背面設置translateY(180),沿y軸旋轉180度,背面朝后,backface-visibility屬性讓背對屏幕的時候隱藏隱藏。

4、hover屬性,當鼠標經過flip_wrap時,讓flip沿y軸旋轉180度,讓正面繞y軸旋轉180度到背面隱藏,背面沿y軸旋轉180轉到正面來。

原理就是這樣,下面就開始看具體代碼吧。

.flip_wrap{width:210px;height:220px;margin:0 auto;perspective:800px;/*perspective屬性定義3D元素距視圖的距離,以像素計。該屬性允許您改變 3D 元素查看 3D 元素的視圖。*/-webkit-perspective:800px;-moz-perspective:800px;-ms-perspective:800px;-o-perspective:800px;}

.flip{width:210px;height:220px;backface-visibility:hidden;/*背對屏幕時隱藏*/-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:all 1s ease;/*為翻牌添加過渡效果*/-webkit-transition:all 1s ease;-moz-transition:all 1s ease;-ms-transition:all 1s ease;-o-transition:all 1s ease;transform-style:preserve-3d;/*子元素將保留其 3D 位置。*/}

.side{width:100%;height:100%;position:absolute;/*讓背面和正面重疊*/left:50%;margin-left:-105px;}

.front{z-index:2;/*讓正面朝上*/}

.back{transform:rotateY(180deg);-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);}.flip_wrap:hover .flip{transform:rotateY(180deg);(180);

-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);}

翻牌body,div{margin:0;padding:0;}.flip_wrap{width:210px;height:220px;margin:0 auto;perspective:800px;/*perspective屬性定義3D元素距視圖的距離,以像素計。該屬性允許您改變 3D 元素查看 3D 元素的視圖。*/-webkit-perspective:800px;-moz-perspective:800px;-ms-perspective:800px;-o-perspective:800px;}.flip{width:210px;height:220px;backface-visibility:hidden;/*背對屏幕時隱藏*/-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-o-backface-visibility:hidden;transition:all 1s ease;/*為翻牌添加過渡效果*/-webkit-transition:all 1s ease;-moz-transition:all 1s ease;-ms-transition:all 1s ease;-o-transition:all 1s ease;transform-style:preserve-3d;/*子元素將保留其 3D 位置。*/}.side{width:100%;height:100%;position:absolute;/*讓背面和正面重疊*/left:50%;margin-left:-105px;}.front{z-index:2;/*讓正面朝上*/}.back{transform:rotateY(180deg);-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);}.flip_wrap:hover .flip{transform:rotateY(180deg);(180);

-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);}

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容