CSS3旋轉跳躍的立方體
知識
07-18
實現3d效果旋轉跳躍的立方體,CSS3中具有的perspective就是為了設置井深,創建一個3D的環境,而transform-style就是為了創建3d環境。
井深:指視覺與平面的距離,使具有三維位置變換的元素產生透視效果,就是我們理解的【Z軸】。 從視覺上觀察,值越大看起來距自己越近,元素整體越大;值越小,越遠,元素整體越小。在設計中給需要3D的盒子的父級設置井深,讓其具有立體透視效果 ,通常perspective使用的值800px或者1200px ,這兩個值從視覺上看比較舒服,也可以根據需求自行設置。
首先,需要創建一個大盒子div將立方體包裹起來,以便在css樣式中固定六個面的位置:
- <div class="wrap">
- <div class="cube">
- <div class="front">前</div>
- <div class="back">後</div>
- <div class="left">左</div>
- <div class="right">右</div>
- <div class="top">上</div>
- <div class="bottom">下</div>
- </div>
- </div>
在CSS中添加相關的樣式如下:
- * {
- padding: 0px;
- margin: 0px;
- }
- .wrap{
- margin-top: 200px;
- margin-left: 500px;
- /*設置井深、透視*/
- perspective: 800px;
- /*視覺來源,透視效果*/
- perspective-origin: 50% 100px;
- }
- .cube{
- position: relative;
- width: 200px;
- /*創建3d環境*/
- transform-style: preserve-3d;
- }
- .cube div{
- position: absolute;
- width: 200px;
- height: 200px;
- /*添加內陰影*/
- box-shadow: 5px 5px 50px plum inset;
- border: 1px gainsboro solid;
- }
- /*旋轉設置立方體的六個面*/
- .front {
- transform: translateZ(100px);
- }
- .back {
- transform: translateZ(-100px) rotateY(180deg);
- }
- .right {
- transform: rotateY(-270deg) translateX(100px);
- /*改變元素位置*/
- transform-origin: top right;
- }
- .left {
- transform: rotateY(270deg) translateX(-100px);
- transform-origin: center left;
- }
- .top {
- transform: rotateX(-90deg) translateY(-100px);
- transform-origin: top center;
- }
- .bottom {
- transform: rotateX(90deg) translateY(100px);
- transform-origin: bottom center;
- }
演示靜態效果:
在CSS樣式中添加動態效果:
- /*幀動畫,旋轉角度*/
- @keyframes spin {
- from { transform:rotateX(0) rotateY(0) rotateZ(0) ; }
- to { transform: rotateX(360deg) rotateY(360deg) rotateZ(360deg); }
- }
- /*旋轉速度*/
- .cube {
- animation: spin 10s infinite linear;
- }


※Matlab對深度學習工具包DeepLearnToolbox的例子實現
※初始化git的初始化用戶信息
TAG:程序員小新人學習 |