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

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)版權所有:易賢網
云南網警報警專用圖標
主站蜘蛛池模板: 南通市| 新余市| 镇原县| 尤溪县| 信阳市| 宁明县| 中西区| 辽阳县| 秦皇岛市| 眉山市| 浦城县| 洞口县| 井冈山市| 微山县| 外汇| 陇南市| 安福县| 西丰县| 海城市| 游戏| 阳春市| 苗栗县| 历史| 襄城县| 昆山市| 乌审旗| 宁远县| 武陟县| 安康市| 辛集市| 罗源县| 柘荣县| 连平县| 时尚| 通州市| 宣城市| 乡城县| 义乌市| 宁明县| 增城市| 大石桥市|