我正在製作通知系統。我想讓這個通知像一個盒子一樣顯示出來,有點像iOS中的一些通知,屏幕頂端像立方體一樣旋轉。CSS3帶陰影的3D盒子
現在,立方體的正面和背面應該是透明的/背景顏色相同。當它轉動時,陰影應該落在不平行於觀看者前方的兩側,就好像箱子上閃着一盞燈。這可以做到嗎?
爲了更清楚:由於包裝盒的正面&背面都一樣的背景色,轉彎時的盒子似乎不會像一個盒子打開而是旋轉進入紙片地點。所以我想要的是立方體的表面會根據它們的角度而不是觀看者獲得一個陰影。
例如,一旦正面(由於它與背景顏色顏色相同,您無法真正看到)旋轉1度,它應該會變暗一點。另一個學位,多一點。所以只有在與用戶直接平行時才顯示臉部的真實顏色。這將創造出一個盒子的錯覺,而不是一條紙片。
我使用的是立方體本教程:http://desandro.github.io/3dtransforms/docs/cube.html
這裏是一個小提琴:http://jsfiddle.net/BqJMW/3/
的另一個問題是,目前的文本似乎有點捉襟見肘,如果你知道我的意思。通常(見下面的代碼)#cube
應該解決這個問題,但它似乎仍然不成比例。
CSS
body {
background: #ebebeb;
}
.container {
width: 200px;
height: 50px;
position: relative;
-webkit-perspective: 1000px;
perspective: 1000px;
}
#cube {
width: 100%;
height: 100%;
position: absolute;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
-webkit-transition: -webkit-transform 1s;
transition: transform 1s;
-webkit-transform: translateZ(-25px);
transform: tranlateZ(-25px);
}
#cube figure {
margin:0;
display: block;
position: absolute;
width: 100%;
height: 100%;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
#cube .front {
background: transparant;
-webkit-transform: translateZ(25px);
transform: translateZ(25px);
}
#cube .top {
background: green;
-webkit-transform: rotateX(-90deg) translateZ(25px);
transform: rotateX(-90deg);
}
#cube .back {
background: transparant;
-webkit-transform: rotateX(180deg) translateZ(25px);
transform: rotate(180deg);
}
#cube.show-front {
-webkit-transform:translateZ(-25px);
tranform: translateZ(-25px);
}
#cube.show-top {
-webkit-transform: translateZ(-25px);
transform: translateZ(-25px);
-webkit-transform: rotateX(90deg);
transform: rotateX(90deg);
}
#cube.show-back {
-webkit-transform: translateZ(-25px);
transform: translateZ(-25px);
-webkit-transform: rotateX(180deg);
transform: rotateX(180deg);
}
HTML
<section class="container">
<div id="cube">
<figure class="front">Front</figure>
<figure class="top">Your notification</figure>
<figure class="back">Back</figure>
</div>
</section>
我真的不明白的陰影部分。你有可能以不同的方式描述它,或者添加一個顯示陰影的簡單圖像嗎? – andyb
@andyb:我已經澄清了我的答案。我不擅長Photoshop,否則我會做一個快速模擬。如果不清楚,我可以嘗試在css中摸索一些東西。 – jdepypere
好我現在明白了:-)我想我也有一個解決方案。馬上發佈! – andyb