亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

利用HTML5+CSS3實現3D轉換效果實例詳解

2024-07-11 08:58:23
字體:
來源:轉載
供稿:網友

前言

本文介紹的是css3的3d模塊,對大家具有一定的參考價值,感興趣的朋友們下面來一起看看吧。

介紹

首先,我們來了解一下3d的坐標系,x軸在屏幕上為水平方向,y軸為垂直方向,而z軸為垂直于屏幕的方向。

不理解的話可以參考定位屬性的z-index屬性,那個在某種意義上就是讓元素在z軸的移動。

在2d轉換模塊中我們研究了rotateX()和rotateY()方法,就是繞x軸和y軸旋轉,這其實就是3d模塊的一種表現,當然要看到近大遠小的3d效果,還需要在父元素上添加透視屬性:transform:perspective(500px);值為透視點到元素的距離,具體概念請看美術透視教學。。。。

多說無益,上代碼:
 

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <style>        div{            width: 200px;            height: 200px;            margin: 0 auto;        }        .div1{            margin-top: 100px;            transform:perspective(500px) rotatey(0deg);            position: relative;            border:1px solid #000000;            background-color: #ff0000;        }        .div1 div{       transform:rotatey(45deg);            position: absolute;            font-size: 80px;            line-height: 200px;            text-align: center;            top: 0;            left: 0;        }    </style></head><body><div class="div1">    <div class="div1_1">1</div></div></body></html>

效果圖:

 

但是,你會發現當父元素轉到90度的時候元素消失了,這就說明元素是沒有厚度的。說明元素雖然具有了近大遠小的透視屬性,但本質上仍是2d的。

這是你需要添加transform-style:preserve-3d;樣式來讓元素在3d空間中轉換。這樣,元素就處在了3維的空間里,當父元素旋轉90度,仍能看到里面的子元素。

示例代碼:
 

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <style>        div{            width: 200px;            height: 200px;            margin: 0 auto;        }        .div1{            margin-top: 100px;            transform:perspective(500px) rotatey(0deg);            transform-style:preserve-3d;            position: relative;            border:1px solid #000000;        }        .div1 div{            background-color: #ff0000;            transform:rotatey(45deg);            position: absolute;            font-size: 80px;            line-height: 200px;            text-align: center;            top: 0;            left: 0;        }    </style></head><body><div class="div1">    <div class="div1_1">1</div></div></body></html>

效果圖:  

  

上面,我們對3d轉換模塊有了一個初步的了解,下面我們一起做一個正方體,來整理一下3d模塊的知識。

一步步來做著寫太過麻煩,我就將過程寫在代碼的注釋里,小伙伴們請見諒。

代碼:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>轉換模塊-正方體</title>    <style>    *{        margin: 0;        padding: 0;        /*去除默認邊距*/    }    ul{        width: 200px;        height: 200px;        border: 1px solid #000;        box-sizing: border-box;        margin: 100px auto;        position: relative;        /*修改基本樣式*/        transform: rotateY(45deg) rotateX(45deg);        /*旋轉看看效果*/        transform-style: preserve-3d;        /*將父元素設置為3d空間*/    }    ul li{        list-style: none;        width: 200px;        height: 200px;        font-size: 60px;        text-align: center;        line-height: 200px;        position: absolute;        left: 0;        top: 0;        /*修改基本樣式*/    }    ul li:nth-child(1){        background-color: red;        transform: translateX(-100px) rotateY(90deg);        /*將第一個l向左移動100像素,然后繞y軸旋轉90度,形成左邊的面*/    }    ul li:nth-child(2){        background-color: green;        transform: translateX(100px) rotateY(90deg);        /*將第一個2向右移動100像素,然后繞y軸旋轉90度*,形成右邊的面*/    }    ul li:nth-child(3){        background-color: blue;        transform: translateY(-100px) rotateX(90deg);        /*將第一個3向上移動100像素,然后繞x軸旋轉90度,形成上面的面*/    }    ul li:nth-child(4){        background-color: yellow;        transform: translateY(100px) rotateX(90deg);        /*將第一個4向下移動100像素,然后繞x軸旋轉90度*/    }    ul li:nth-child(5){        background-color: purple;        transform: translateZ(-100px);        /*將第一個5向后移動100像素,形成后面的面*/    }    ul li:nth-child(6){        background-color: pink;        transform: translateZ(100px);        /*將第一個l向前移動100像素,形成前面的面*/    }</style></head><body><ul>    <!--首先做好html布局,正方體有6個面,所以寫了6個li-->    <li>1</li>    <li>2</li>    <li>3</li>    <li>4</li>    <li>5</li>    <li>6</li></ul></body></html>

效果圖:

這個方法比較好理解,理解了之后請看下一個。

代碼在下面:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title>    <style>        div{            width: 200px;            height: 200px;            margin: 0 auto;            /*修改基本樣式*/        }        .div1{            margin-top: 100px;            transform: perspective(400px) rotatex(0deg) rotatey(0deg);            /*擁有近大遠小透視效果*/            transform-style: preserve-3d;            /*設置為3d空間*/            position: relative;            border:1px solid #000000;            animation: xuanzhuan 5s cubic-bezier(0.0,0.0,0.0,0.0) infinite forwards;            /*旋轉動畫*/        }        .div1 div{            position: absolute;            font-size: 80px;            line-height: 200px;            text-align: center;            top: 0;            left: 0;            /*內部樣式*/        }        .div1_1{            transform: translatez(100px);            background-color: red;            /*向前移動100像素,作為最前面的面*/        }        .div1_2{            transform: rotatex(90deg) translatez(100px);            background-color:green;            /*繞x軸旋轉90度,在z軸正方向移動100像素,作為上面的面*/            /*注:旋轉時坐標系會跟著一起旋轉,z軸原來是垂直屏幕向外的,繞x軸旋轉90度以后就是在屏幕上向上的方向*/        }        .div1_3{            transform: rotatex(180deg) translatez(100px);            background-color: blue;            /*繞x軸旋轉180度,這時z軸垂直屏幕向內,在z軸正方向移動100像素,作為后面的面*/        }        .div1_4{            transform: rotatex(270deg) translatez(100px);            background-color: purple;            /*繞x軸旋轉270度,這時z軸向下,在z軸正方向移動100像素,作為下面的面*/        }        .div1_5{            transform: rotatey(90deg) translatez(100px);            background-color: pink;            /*繞y軸旋轉90度,這時z軸向右,在z軸正方向移動100像素,作為右面的面*/        }        .div1_6{            transform: rotatey(270deg) translatez(100px);            background-color: yellow;            /*繞y軸旋轉90度,這時z軸向左,在z軸正方向移動100像素,作為左面的面*/        }        @-webkit-keyframes xuanzhuan{            from{                transform:perspective(400px) rotatex(0deg);            }            to{                transform:perspective(400px) rotatex(360deg);            }        }        .div1:hover{            transform: perspective(400px) scale(1.5);            animation: xuanzhuan 5s cubic-bezier(0.0,0.0,0.0,0.0) infinite paused forwards;            /*有hover事件是動畫暫停*/        }    </style></head><body><div class="div1">    <div class="div1_1">1</div>    <div class="div1_2">2</div>    <div class="div1_3">3</div>    <div class="div1_4">4</div>    <div class="div1_5">5</div>    <div class="div1_6">6</div></div><!--html標簽布局--></body></html>

效果圖:

這種寫法只要理解了,寫起來會更加的方便,而且不不用去考慮轉換的角度不對會導致內容是反的,所以推薦這一種寫法。當然這種寫法在x軸和y軸一起旋轉是也會造成內容的反轉。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97**国产露脸精品国产| 国产精品亚洲一区二区三区| 国产精品情侣自拍| 国产美女扒开尿口久久久| 91亚洲精品视频| 亚洲福利在线播放| 欧美一级片久久久久久久| 成人黄色免费片| 欧美福利视频在线观看| 91色视频在线导航| 欧美日韩一区免费| 在线a欧美视频| 欧美午夜视频在线观看| 亚洲最大福利网| 日本精品久久久久影院| 中文字幕av日韩| 久久久久久美女| 97人洗澡人人免费公开视频碰碰碰| 国产精品视频久久| 成人妇女淫片aaaa视频| 91性高湖久久久久久久久_久久99| 国产一区二区三区直播精品电影| 久久亚洲精品一区| 538国产精品一区二区免费视频| 国产精品扒开腿做爽爽爽的视频| 久久精品国产精品亚洲| 日韩亚洲欧美中文高清在线| 精品成人国产在线观看男人呻吟| 97热精品视频官网| 97免费中文视频在线观看| 亚洲欧美变态国产另类| 亚洲偷熟乱区亚洲香蕉av| 国产欧美日韩精品专区| 久久亚洲精品视频| 成人做爽爽免费视频| 欧美重口另类videos人妖| 精品色蜜蜜精品视频在线观看| xxxx性欧美| 久久久久久久久久久久av| 欧美性猛交xxxx乱大交极品| 亚洲欧美日韩高清| 欧美区在线播放| 91影视免费在线观看| 一夜七次郎国产精品亚洲| 91在线视频免费| 久久全国免费视频| 国产精品丝袜久久久久久高清| 久久久精品999| 91黑丝高跟在线| 国产日韩精品视频| 亚洲综合社区网| 欧美激情国产精品| 一区二区三区动漫| 亚洲国产精品视频在线观看| 亚洲精品视频网上网址在线观看| 欧美日韩中文字幕综合视频| 欧美日韩在线第一页| 国产在线拍偷自揄拍精品| 一区二区三区视频观看| 国产成人久久久精品一区| 欧美黑人狂野猛交老妇| 亚洲自拍小视频免费观看| 九九热99久久久国产盗摄| 日韩av最新在线观看| 日韩在线视频观看正片免费网站| 欧美成年人视频| 久久综合国产精品台湾中文娱乐网| 91系列在线播放| 91国语精品自产拍在线观看性色| 欧美日韩国产激情| 国产成人精品视频| 性日韩欧美在线视频| 68精品久久久久久欧美| 久久久久久国产精品久久| 91九色国产社区在线观看| 国产精品成人国产乱一区| 精品久久久在线观看| 国产精品美乳在线观看| 亚洲 日韩 国产第一| 国产精品自产拍高潮在线观看| 91精品一区二区| 欧美性猛交xxxx乱大交蜜桃| 精品香蕉一区二区三区| 俺去亚洲欧洲欧美日韩| 色爱av美腿丝袜综合粉嫩av| 欧美又大粗又爽又黄大片视频| 亚洲精品一区二区久| 国产性猛交xxxx免费看久久| 韩国国内大量揄拍精品视频| 国产精品视频自在线| 亚洲精品国产拍免费91在线| 91中文在线视频| 国产精品久久电影观看| 日本久久亚洲电影| 欧美激情乱人伦| 亚洲精品自在久久| 欧美激情视频在线| 久久精品国产成人精品| 欧美wwwxxxx| 国产精品亚洲第一区| 亚洲精品动漫100p| 裸体女人亚洲精品一区| 91系列在线观看| 中文在线资源观看视频网站免费不卡| 精品激情国产视频| 亚洲一区久久久| 国产亚洲精品美女久久久| 亚洲国产三级网| 亚洲欧美日韩天堂一区二区| 欧美电影在线观看| 欧美日韩在线影院| 亚洲在线视频观看| 欧美视频一区二区三区…| 粉嫩老牛aⅴ一区二区三区| 久久手机精品视频| 成人www视频在线观看| 欧美另类69精品久久久久9999| 国内精品小视频在线观看| 91日本在线观看| 久久91超碰青草是什么| 日韩在线视频免费观看高清中文| 在线精品国产成人综合| 久久久免费精品视频| 欧美亚洲日本网站| 国产在线观看一区二区三区| 成人黄色片网站| 九九热在线精品视频| 亚洲欧美中文字幕在线一区| 日韩av免费看| 日韩视频精品在线| 国产成人激情视频| 深夜福利日韩在线看| 正在播放欧美视频| 日韩视频免费在线观看| 久久久久久这里只有精品| 欧美激情免费看| 日韩a**中文字幕| 97在线免费观看| 欧美精品久久一区二区| 精品二区三区线观看| 中文字幕亚洲欧美一区二区三区| 91久久久久久久久久久久久| 亚洲精品国产欧美| 久久亚洲国产精品成人av秋霞| 精品偷拍各种wc美女嘘嘘| 日韩在线观看免费全集电视剧网站| 91色精品视频在线| 国产91色在线| 日韩欧美在线第一页| 一区二区三区精品99久久| 国产高清视频一区三区| 欧美极品少妇xxxxⅹ裸体艺术| 九九热r在线视频精品| 国产成人啪精品视频免费网| 欧美性猛交xxxx免费看| 中文字幕久久久av一区| 久久好看免费视频| 国产亚洲精品综合一区91| 中文字幕亚洲色图| 亚洲人成网站777色婷婷| 国产精品视频在线播放| 国产欧美在线视频| 欧美精品videos| 亚洲欧美中文字幕在线一区|