我想使用webkit對CSS3 transform: matrix3d(<matrix>)
的支持來創建「下降卡」效果。 (對於這個輸出的唯一目標是鉻)CSS3 matrix3d矩形到梯形轉換
最終的效果應通過下面的4個階段過渡,並最終作爲只是一個水平線:
這裏是CSS我有現在:
#test {
margin: auto auto;
height: 200px;
width: 200px;
border:1px solid black;
background-color: lightblue;
-webkit-perspective: 1000;
-webkit-transform-origin: 50% 100%;
-webkit-transform-style: preserve-3d;
-webkit-animation-name: flip-card;
-webkit-animation-duration: 1s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
-webkit-box-shadow: 0px 5px 20px rgba(0, 0, 0, 0.5);
}
@-webkit-keyframes flip-card {
0% {-webkit-transform: ;}
100% {-webkit-transform:
matrix3d(1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 0, 0,
0, 0, 0.001, 1);}
}
和HTML是簡單的測試:
<body>
<div id="test">this div should fall forward...</div>
</body>
上面的matrix3d基於讀取this SO question,但它會產生一個縮小的正方形,它會圍繞由初始框底部定義的x軸進行翻轉。
我明白,CSS 2d矩陣只能通過變換一個盒子來產生矩形和平行四邊形,而不規則形狀需要矩陣3d變換操作(this有助於刷新我的衰落線性代數!),但我似乎只能產生矩形和平行四邊形。
我環顧了一些標有matrix
和transformation
的SO問題。他們中的大多數不是基於CSS的,我無法獲得我想要的轉換。
我創建了CSS變換值擺弄的工具在這裏:http://www.duopixel.com/ stack/webkitmatrix /,但恐怕我無法用Chrome製作梯形圖。試一試。 – Duopixel 2011-02-10 14:00:13
@Duopixel:這是一個很棒的工具。我可以在Safari中製作一個梯形...但通過移動Row-1,Column4滑塊(右上滑塊)在Y軸上傾斜而不是在X軸上。在同一個滑塊創建平行四邊形的Chrome中。我的理解是,我應該移動Row-4,Column-3滑塊來創建X軸平行四邊形,但它在Safari或Chrome中不起作用。 – beggs 2011-02-11 06:02:25
這[CoffeeScript小提琴](http://franklinta.com/2014/09/08/computing-css-matrix3d-transforms/#cp_embed_ifnqH)可能會有用。它嵌入的博客頁面也有一些有用的解釋。 – mbomb007 2015-10-20 19:20:34