Estoy tratando de utilizar el soporte webkit para CSS3 transform: matrix3d(<matrix>)
para crear un efecto de 'caída de la tarjeta'. (El único objetivo para la salida de este es Chrome)rectángulo CSS3 matrix3d a la transformación trapezoidal
El efecto final debe transición a través de las 4 etapas siguientes y terminar como sólo una línea horizontal:
Aquí es el CSS tengo ahora:
#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);}
}
Y el HTML es simple para la prueba:
<body>
<div id="test">this div should fall forward...</div>
</body>
El matrix3d en el anterior se basó en la lectura this SO question, pero produce un cuadrado que se contrae y gira alrededor del eje x definido por la parte inferior del recuadro inicial.
Entiendo que la matriz CSS 2d solo puede producir rectángulos y paralelogramos mediante la transformación de un recuadro y que las formas irregulares necesitan la operación de transformación matrix3d (this fue útil para refrescar mi álgebra lineal desvanecida), pero parece que solo puedo para producir rectángulos y paralelogramos.
He examinado algunas de las preguntas SO etiquetadas con matrix
y transformation
. La mayoría de ellos no están basados en CSS y no he podido obtener la transformación que deseo.
he creado una herramienta para jugar con los valores de transformación css aquí: http://www.duopixel.com/ stack/webkitmatrix /, pero me temo que no podría producir un trapezoide con Chrome. Darle una oportunidad. – Duopixel
@Duopixel: es una gran herramienta. Puedo hacer un trapezoide en Safari ... pero sesgado en el eje Y, no en el eje X, moviendo el control deslizante Row-1, Column4 (el control deslizante superior derecho). En Chrome, ese mismo control deslizante crea un paralelogramo. Tengo entendido que debería mover el control deslizante Row-4, Column-3 para crear el paralelogramo del eje X, pero no tiene efecto en Safari o Chrome. – beggs
Este [Filo de CoffeeScript] (http://franklinta.com/2014/09/08/computing-css-matrix3d-transforms/#cp_embed_ifnqH) puede ser útil. La página del blog en la que está incrustada también tiene algunas explicaciones útiles. – mbomb007