Я пытаюсь использовать поддержку 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>
Матрица 3d в приведенном выше примере была основана на чтении this SO question, но она создает сокращающийся квадрат, который переворачивается вокруг оси x, определяемой нижней частью исходного блока.
Я понимаю, что матрица CSS 2d может создавать прямоугольники и параллелограммы путем преобразования прямоугольника и что нерегулярные формы нуждаются в операции преобразования matrix3d (this был полезен при обновлении моей угасающей линейной алгебры!), Но я, похоже, для создания прямоугольников и параллелограммов.
Я рассмотрел некоторые из вопросов SO, отмеченных matrix
и transformation
. Большинство из них не основаны на CSS, и я не смог получить преобразование, которое я хочу.
Я создал инструмент возиться со значениями преобразования CSS здесь: http://www.duopixel.com/ stack/webkitmatrix /, но, боюсь, я не могу создать трапецию с Chrome. Попробуйте. – Duopixel
@Duopixel: это отличный инструмент. Я могу сделать трапецию в Safari ... но перекосил по оси Y, а не по оси X, перемещая ползунок Row-1, Column4 (верхний правый слайдер). В Chrome тот же слайдер создает параллелограмм. Я понимаю, что я должен перемещать ползунок Row-4, Column-3 для создания параллелограмма по оси X, но это не влияет на Safari или Chrome. – beggs
Эта скрипка [CoffeeScript] (http://franklinta.com/2014/09/08/computing-css-matrix3d-transforms/#cp_embed_ifnqH) может быть полезна. На странице блога, на которой он встроен, есть и полезные объяснения. – mbomb007