用 css 和簡(jiǎn)單 js 實(shí)現(xiàn)翻書(shū)效果

前言

今天自己做了一個(gè)用 css 和簡(jiǎn)單的 js 實(shí)現(xiàn)“翻書(shū)”的效果乾吻,所以呢,想跟大家分享一下拟蜻。由于原版內(nèi)容較大绎签,所以圖片去掉了,只能成為精簡(jiǎn)版了瞭郑。那么咱們先來(lái)看看效果辜御。


效果原理

它是怎么實(shí)現(xiàn)的呢?簡(jiǎn)單的來(lái)講屈张,就是將幾個(gè) div 定位在一起擒权,通過(guò) js 實(shí)現(xiàn)點(diǎn)擊 div 讓 div 旋轉(zhuǎn)來(lái)達(dá)到“翻書(shū)”的效果,最后再點(diǎn)擊后封面(最后一個(gè) div)阁谆,使“書(shū)”合上碳抄。
那么原理都清楚了,咱們就開(kāi)始代碼實(shí)現(xiàn)吧场绿!

代碼實(shí)現(xiàn)

第一部分

咱們第一部分就是 body 里面的代碼了剖效,這個(gè)大家應(yīng)該都清楚應(yīng)該怎么寫(xiě),就是幾個(gè) div 嘛焰盗!
但有一點(diǎn)要注意璧尸,div 的上下關(guān)系。因?yàn)槎ㄎ凰械?div 會(huì)在一起熬拒,由于加載順序爷光,后加載的 div 會(huì)在上面,所以要將幾個(gè) div 反著放澎粟。

<body>
        <div class="book pre-3d" id="book">
            <!-- 后封面 -->
            <ul>
            <li class="" id="Rcover"><img src="img/6.jpg" alt=""></li>
            <!-- 書(shū)頁(yè) -->
            <li class="pre-3d  page front2"><img src="img/5.jpg" alt=""></li>
            <li class="pre-3d  page front2"><img src="img/4.jpg" alt=""></li>
            <li class="pre-3d  page front2"><img src="img/3.jpg" alt=""></li>
            <li class="pre-3d  page front2"><img src="img/2.jpg" alt=""></li>
            <!-- 書(shū)的封面 -->
            <li class="pre-3d  page front1"><img src="img/1.jpg" alt=""></li>
            </ul>
        </div>
    </body>

第二部分

接下來(lái)就是設(shè)置 css 樣式了蛀序。首先要將所用到的標(biāo)簽的默認(rèn)樣式清除掉欢瞪。開(kāi)啟頁(yè)面的 3d 渲染
和景深,景深是為了更好的視覺(jué)效果徐裸。然后還要講所有的 div 延 X 軸進(jìn)行一定角度的旋轉(zhuǎn)遣鼓,讓它更有一種“書(shū)”的感覺(jué)。其它的基本樣式自己就看心情了重贺。

<style type="text/css">
            * {
                padding: 0;
                margin: 0;
            }
            body,html {
                height: 100%;
            }
            li{
                list-style: none;
            }
            body {
                -webkit-perspective: 2000px;
                -moz-perspective: 2000px;
                -ms-perspective: 2000px;
                perspective: 2000px;
                background-color: #212121;
            }
            .book {
                position: absolute;
                top: 30%;
                left: 40%;
                width: 500px;
                height: 500px;
                background-color: #fff;
                -webkit-transform: rotateX(30deg);
                -ms-transform: rotateX(30deg);
                -o-transform: rotateX(30deg);
                transform: rotateX(30deg);
            }
            /*開(kāi)3D效果*/
            .pre-3d {               
                -webkit-transform-style: preserve-3d;
                -moz-transform-style: preserve-3d;
                -ms-transform-style: preserve-3d;
                transform-style: preserve-3d;
            }
            .page {
                position: absolute;
                top: 0;
                left: 0;
                width: 500px;
                height: 500px;
                border: 1px solid #1976D2;
                text-align: center;
                -webkit-transform-origin: 0 50%;
                -moz-transform-origin: 0 50%;
                -ms-transform-origin: 0 50%;
                -o-transform-origin: 0 50%;
                transform-origin: 0 50%;
            }
            .front1 {
                background-color: paleturquoise;
            }
            .front2 {
                background-color: goldenrod;
            }   
            img{
                width: 100%;
                height: 100%;
            }       
        </style>

第三部分

這個(gè)效果的核心部分也就是 js 代碼實(shí)現(xiàn)了骑祟,但這并不難,非常的簡(jiǎn)單 js 初學(xué)者都能看懂檬姥。那咱們先來(lái)看看代碼

<script>
    var b=document.getElementById('book');
    var s=document.getElementsByTagName('li');
    var c=document.getElementById('Rcover');
    var i=5;
    b.onclick=function(){
        if(i>0){
            s[i].style.transform='rotateY(-140deg)';
            s[i].style.transition='3s';
            i--;
        }
    }
    c.onclick=function(){
        for(var j=1;j<6;j++){
        s[j].style.transform='rotateY(0deg)';
            s[j].style.transition='3s';}
    }
</script>

看完代碼曾我,應(yīng)該覺(jué)得不難吧?可能就是對(duì) i-- 有些疑問(wèn)健民,要知道咱們的 div 是倒著放的抒巢。其他的應(yīng)該也沒(méi)啥了,我就將完整代碼奉上了秉犹。

完整代碼

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>CSS3翻書(shū)效果</title>
        <style type="text/css">
            * {
                padding: 0;
                margin: 0;
            }
            body,html {
                height: 100%;
            }
            li{
                list-style: none;
            }
            body {
                -webkit-perspective: 2000px;
                -moz-perspective: 2000px;
                -ms-perspective: 2000px;
                perspective: 2000px;
                background-color: #212121;
            }
            .book {
                position: absolute;
                top: 30%;
                left: 40%;
                width: 500px;
                height: 500px;
                background-color: #fff;
                -webkit-transform: rotateX(30deg);
                -ms-transform: rotateX(30deg);
                -o-transform: rotateX(30deg);
                transform: rotateX(30deg);
            }
            /*開(kāi)3D效果*/
            .pre-3d {               
                -webkit-transform-style: preserve-3d;
                -moz-transform-style: preserve-3d;
                -ms-transform-style: preserve-3d;
                transform-style: preserve-3d;
            }
            .page {
                position: absolute;
                top: 0;
                left: 0;
                width: 500px;
                height: 500px;
                border: 1px solid #1976D2;
                text-align: center;
                -webkit-transform-origin: 0 50%;
                -moz-transform-origin: 0 50%;
                -ms-transform-origin: 0 50%;
                -o-transform-origin: 0 50%;
                transform-origin: 0 50%;
            }
            .front1 {
                background-color: paleturquoise;
            }
            .front2 {
                background-color: goldenrod;
            }   
            img{
                width: 100%;
                height: 100%;
            }       
        </style>
    </head>
    <body>
        <div class="book pre-3d" id="book">
            <!-- 后封面 -->
            <ul>
            <li class="" id="Rcover"><img src="img/6.jpg" alt=""></li>
            <!-- 書(shū)頁(yè) -->
            <li class="pre-3d  page front2"><img src="img/5.jpg" alt=""></li>
            <li class="pre-3d  page front2"><img src="img/4.jpg" alt=""></li>
            <li class="pre-3d  page front2"><img src="img/3.jpg" alt=""></li>
            <li class="pre-3d  page front2"><img src="img/2.jpg" alt=""></li>
            <!-- 書(shū)的封面 -->
            <li class="pre-3d  page front1"><img src="img/1.jpg" alt=""></li>
            </ul>
        </div>
    </body>
<script>
    var b=document.getElementById('book');
    var s=document.getElementsByTagName('li');
    var c=document.getElementById('Rcover');
    var i=5;
    b.onclick=function(){
        if(i>0){
            s[i].style.transform='rotateY(-140deg)';
            s[i].style.transition='3s';
            i--;
        }
    }
    c.onclick=function(){
        for(var j=1;j<6;j++){
        s[j].style.transform='rotateY(0deg)';
            s[j].style.transition='3s';}
    }
</script>
</html>

圖片也放這里了注意下載的時(shí)候注意路徑(我將圖片放在了 img 文件夾中)和名稱蛉谜。

1.jpg

2.jpg

3.jpg

4.jpg

5.jpg

6.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市崇堵,隨后出現(xiàn)的幾起案子型诚,更是在濱河造成了極大的恐慌,老刑警劉巖鸳劳,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狰贯,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡赏廓,警方通過(guò)查閱死者的電腦和手機(jī)涵紊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)幔摸,“玉大人摸柄,你說(shuō)我怎么就攤上這事〖纫洌” “怎么了驱负?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)患雇。 經(jīng)常有香客問(wèn)我跃脊,道長(zhǎng),這世上最難降的妖魔是什么苛吱? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任匾乓,我火速辦了婚禮,結(jié)果婚禮上又谋,老公的妹妹穿的比我還像新娘拼缝。我一直安慰自己,他們只是感情好彰亥,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布咧七。 她就那樣靜靜地躺著,像睡著了一般任斋。 火紅的嫁衣襯著肌膚如雪继阻。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天废酷,我揣著相機(jī)與錄音瘟檩,去河邊找鬼。 笑死澈蟆,一個(gè)胖子當(dāng)著我的面吹牛墨辛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播趴俘,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼睹簇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了寥闪?” 一聲冷哼從身側(cè)響起太惠,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎疲憋,沒(méi)想到半個(gè)月后凿渊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缚柳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年埃脏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喂击。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡剂癌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出翰绊,到底是詐尸還是另有隱情佩谷,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布监嗜,位于F島的核電站谐檀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏裁奇。R本人自食惡果不足惜桐猬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刽肠。 院中可真熱鬧溃肪,春花似錦免胃、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至厨钻,卻和暖如春扼雏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背夯膀。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工诗充, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人诱建。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓蝴蜓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親涂佃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子励翼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,734評(píng)論 1 92
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,737評(píng)論 25 707
  • 2017.1.11 朝代:唐代 作者:李頎 原文: 四月南風(fēng)大麥黃辜荠,棗花未落桐葉長(zhǎng)汽抚。 青山朝別暮還見(jiàn),嘶馬出門思舊...
    小蚊子肥肥閱讀 692評(píng)論 1 0
  • 這是在簡(jiǎn)書(shū)上寫(xiě)的第一百篇文章伯病,回頭再看造烁,第一篇文章開(kāi)啟的時(shí)間是2016年2月2日,我也是午笛,挑了個(gè)這么2的日子開(kāi)始自...
    扶風(fēng)長(zhǎng)天閱讀 190評(píng)論 2 1
  • 耳機(jī)和車的呼嘯 車站 堆滿人的呼吸 你呢 第一次這樣凝視細(xì)膩的雨 沒(méi)有傘惭蟋,沒(méi)有手指間緊扣的溫暖 沾濕過(guò)往一切 煙燃...
    慕籽閱讀 176評(píng)論 0 3