中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

css3 transform 3d 使用css3創建動態3d立方體(html5實踐)
來源:易賢網 閱讀:1570 次 日期:2016-08-01 15:21:09
溫馨提示:易賢網小編為您整理了“css3 transform 3d 使用css3創建動態3d立方體(html5實踐)”,方便廣大網友查閱!

在今天的課程中,我將向大家介紹如何使用css3創建3d的立方體,操作方法為:上下左右鍵,實現立方體的翻轉旋轉效果,特酷,本人看后,目瞪口呆,值得收藏于參考

下面我們開始介紹如何制作。

html:

代碼如下:

<div id="experiment">

<div id="cube">

<div class="face one">

One face

</div>

<div class="face two">

Up, down, left, right

</div>

<div class="face three">

Lorem ipsum.

</div>

<div class="face four">

New forms of navigation are fun.

</div>

<div class="face five">

Rotating 3D cube

</div>

<div class="face six">

More content

</div>

</div>

</div>

上面的html中,class為face的6個div分別代表立方體的6個面,使用one到six的class名字對他們加以區分。外部包含有id為cube和experiment的兩層容器,這兩層都是必須的,少了任何一個,3d效果都出不來。

其中experiment起到鏡頭的作用。對他設置焦距,這樣3d效果才能在內部元素上展示出來。

perspective屬性定義z軸平面的深度,同時也定義了平面上面和下面元素的相對尺寸。總的來說,perspective值越小,物體越大,離你也越近;perspective值越大,物體越小,離你也越遠。大家可以通過http://www.webkit.org/blog-files/3d-transforms/perspective-by-example.html查看效果。

perspective-origin屬性定義視角的原點。

css:

代碼如下:

#experiment {

-webkit-perspective: 800;

-moz-perspective: 800;

-o-perspective: 800;

perspective: 800;

-webkit-perspective-origin: 50% 200px;

-moz-perspective-origin: 50% 200px;

-o-perspective-origin: 50% 200px;

perspective-origin: 50% 200px;

}

cube設置的屬性中包含固定的寬度和高度,并將position設置為relative。固定的高度和寬度是必須的,這樣cube中的元素才能在限定的區域內執行3d動畫。如果將高度和寬度設置為100%,cube中的元素將在整個頁面范圍內運動。

transition用來設置動畫相關的屬性。transform-style: preserve-3d; 使得cube中的所有元素作為一個整體來產生3d效果。

大家可以瀏覽http://www.zhangxinxu.com/wordpress/2012/09/css3-3d-transform-perspective-animate-transition/,了解更多信息。

css:

代碼如下:

#cube {

position: relative;

margin: 100px auto;

height: 400px;

width: 400px;

-webkit-transition: -webkit-transform 2s linear;

-moz-transition: -moz-transform 2s linear;

-o-transition: -o-transform 2s linear;

transition: transform 2s linear;

-webkit-transform-style: preserve-3d;

-moz-transform-style: preserve-3d;

-o-transform-style: preserve-3d;

transform-style: preserve-3d;

}

接下來統一為立方體的6個面設置css屬性。

css:

代碼如下:

.face {

position: absolute;

height: 360px;

width: 360px;

padding: 20px;

background-color: rgba(50, 50, 50, 0.7);

}

接下來但是設置6個面的3d相關屬性,使用rotateX或者rotateY來實現立方體表面朝向的翻轉,使用translateZ實現立方體表面在3維空間的位置移動。

css:

代碼如下:

#cube .one {

-webkit-transform: rotateX(90deg) translateZ(200px);

-moz-transform: rotateX(90deg) translateZ(200px);

-o-transform: rotateX(90deg) translateZ(200px);

transform: rotateX(90deg) translateZ(200px);

}

#cube .two {

-webkit-transform: translateZ(200px);

-moz-transform: translateZ(200px);

-o-transform: translateZ(200px);

transform: translateZ(200px);

}

#cube .three {

-webkit-transform: rotateY(90deg) translateZ(200px);

-moz-transform: rotateY(90deg) translateZ(200px);

-o-transform: rotateY(90deg) translateZ(200px);

transform: rotateY(90deg) translateZ(200px);

}

#cube .four {

-webkit-transform: rotateY(180deg) translateZ(200px);

-moz-transform: rotateY(180deg) translateZ(200px);

-o-transform: rotateY(180deg) translateZ(200px);

transform: rotateY(180deg) translateZ(200px);

}

#cube .five {

-webkit-transform: rotateY(-90deg) translateZ(200px);

-moz-transform: rotateY(-90deg) translateZ(200px);

-o-transform: rotateY(-90deg) translateZ(200px);

transform: rotateY(-90deg) translateZ(200px);

}

#cube .six {

-webkit-transform: rotateX(-90deg) translateZ(200px);

-moz-transform: rotateX(-90deg) translateZ(200px);

-o-transform: rotateX(-90deg) translateZ(200px);

transform: rotateX(-90deg) translateZ(200px);

}

最后要做的是為頁面綁定keydown事件,這樣當你按下上下左右鍵的時候,實現立方體的翻轉運動效果。

javascript:

代碼如下:

var xAngle = 0, yAngle = 0;

document.addEventListener('keydown', function(e)

{

switch(e.keyCode)

{

case 37: // left

yAngle -= 90;

break;

case 38: // up

xAngle += 90;

break;

case 39: // right

yAngle += 90;

break;

case 40: // down

xAngle -= 90;

break;

};

$('cube').style.webkitTransform = "rotateX("+xAngle+"deg) rotateY("+yAngle+"deg)";

}, false);

就講到這里,接下來大家可以動手嘗試一下。

更多信息請查看網頁制作
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
主站蜘蛛池模板: 察哈| 远安县| 讷河市| 边坝县| 云龙县| 武冈市| 宁陵县| 肥乡县| 攀枝花市| 新津县| 侯马市| 和林格尔县| 榆社县| 兴和县| 淄博市| 莱州市| 威信县| 察雅县| 图木舒克市| 扎兰屯市| 离岛区| 乌苏市| 大关县| 密云县| 牙克石市| 孟连| 叶城县| 崇信县| 玉溪市| 淮滨县| 乡宁县| 云阳县| 清苑县| 温宿县| 雅安市| 加查县| 博乐市| 金溪县| 延长县| 旬阳县| 奇台县|