|
|
|
.zoom-motion(@className, @keyframeName) {
|
|
|
|
.make-motion(@className, @keyframeName);
|
|
|
|
.@{className}-enter {
|
|
|
|
transform: scale(0, 0); // need this by yiminghe
|
|
|
|
animation-timing-function: @ease-out-circ;
|
|
|
|
}
|
|
|
|
.@{className}-leave {
|
|
|
|
animation-timing-function: @ease-in-circ;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.zoom-motion(zoom, zoom);
|
|
|
|
.zoom-motion(zoom-up, zoomUp);
|
|
|
|
.zoom-motion(zoom-down, zoomDown);
|
|
|
|
.zoom-motion(zoom-left, zoomLeft);
|
|
|
|
.zoom-motion(zoom-right, zoomRight);
|
|
|
|
|
|
|
|
@keyframes zoomIn {
|
|
|
|
0% {
|
|
|
|
opacity: 0;
|
|
|
|
transform-origin: 50% 50%;
|
|
|
|
transform: scale(0, 0);
|
|
|
|
}
|
|
|
|
100% {
|
|
|
|
transform-origin: 50% 50%;
|
|
|
|
transform: scale(1, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes zoomOut {
|
|
|
|
0% {
|
|
|
|
transform-origin: 50% 50%;
|
|
|
|
transform: scale(1, 1);
|
|
|
|
}
|
|
|
|
100% {
|
|
|
|
opacity: 0;
|
|
|
|
transform-origin: 50% 50%;
|
|
|
|
transform: scale(0, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes zoomUpIn {
|
|
|
|
0% {
|
|
|
|
opacity: 0;
|
|
|
|
transform-origin: 50% 0%;
|
|
|
|
transform: scale(0, 0);
|
|
|
|
}
|
|
|
|
100% {
|
|
|
|
transform-origin: 50% 0%;
|
|
|
|
transform: scale(1, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes zoomUpOut {
|
|
|
|
0% {
|
|
|
|
transform-origin: 50% 0%;
|
|
|
|
transform: scale(1, 1);
|
|
|
|
}
|
|
|
|
100% {
|
|
|
|
opacity: 0;
|
|
|
|
transform-origin: 50% 0%;
|
|
|
|
transform: scale(0, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes zoomLeftIn {
|
|
|
|
0% {
|
|
|
|
opacity: 0;
|
|
|
|
transform-origin: 0% 50%;
|
|
|
|
transform: scale(0, 0);
|
|
|
|
}
|
|
|
|
100% {
|
|
|
|
transform-origin: 0% 50%;
|
|
|
|
transform: scale(1, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes zoomLeftOut {
|
|
|
|
0% {
|
|
|
|
transform-origin: 0% 50%;
|
|
|
|
transform: scale(1, 1);
|
|
|
|
}
|
|
|
|
100% {
|
|
|
|
opacity: 0;
|
|
|
|
transform-origin: 0% 50%;
|
|
|
|
transform: scale(0, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes zoomRightIn {
|
|
|
|
0% {
|
|
|
|
opacity: 0;
|
|
|
|
transform-origin: 100% 50%;
|
|
|
|
transform: scale(0, 0);
|
|
|
|
}
|
|
|
|
100% {
|
|
|
|
transform-origin: 100% 50%;
|
|
|
|
transform: scale(1, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes zoomRightOut {
|
|
|
|
0% {
|
|
|
|
transform-origin: 100% 50%;
|
|
|
|
transform: scale(1, 1);
|
|
|
|
}
|
|
|
|
100% {
|
|
|
|
opacity: 0;
|
|
|
|
transform-origin: 100% 50%;
|
|
|
|
transform: scale(0, 0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes zoomDownIn {
|
|
|
|
0% {
|
|
|
|
opacity: 0;
|
|
|
|
transform-origin: 50% 100%;
|
|
|
|
transform: scale(0, 0);
|
|
|
|
}
|
|
|
|
100% {
|
|
|
|
transform-origin: 50% 100%;
|
|
|
|
transform: scale(1, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes zoomDownOut {
|
|
|
|
0% {
|
|
|
|
transform-origin: 50% 100%;
|
|
|
|
transform: scale(1, 1);
|
|
|
|
}
|
|
|
|
100% {
|
|
|
|
opacity: 0;
|
|
|
|
transform-origin: 50% 100%;
|
|
|
|
transform: scale(0, 0);
|
|
|
|
}
|
|
|
|
}
|