【发布时间】:2018-12-28 18:48:18
【问题描述】:
@keyframes gray {
0% { transform: matrix(1, 0, 0, 1, 0, 0) }
100% { transform: matrix(-1, 0, 0, -1, 20, 20) }
}
@keyframes lightblue {
0% { transform: translate(10px, 10px) rotate(0deg) translate(-10px, -10px); }
100% { transform: translate(10px, 10px) rotate(180deg) translate(-10px, -10px); }
}
.gray {
float: left;
margin-left: 50px;
width: 20px;
height: 20px;
background: gray;
transform-origin: 0px 0px;
animation: gray linear 1s infinite;
}
.lightblue {
float: left;
margin-left: 50px;
width: 20px;
height: 20px;
background: lightblue;
transform-origin: 0px 0px;
animation: lightblue linear 1s infinite;
}
<div class="gray"></div>
<div class="lightblue"></div>
据我所知
transform: matrix(1, 0, 0, 1, 0, 0);
等于
transform: translate(10px, 10px) rotate(0deg) translate(-10px, -10px);
和
transform: matrix(-1, 0, 0, -1, 20, 20)
等于
transform: translate(10px, 10px) rotate(180deg) translate(-10px, -10px);
当我将上述 css 规则直接用于元素时,一切正常。 但是在我在关键帧中使用上述 css 规则后,事情就出错了。 灰色元素的旋转角度与浅蓝色元素不同。
我在 chrome 71 中测试代码
【问题讨论】:
标签: css css-animations css-transforms keyframe