【发布时间】:2015-12-08 10:44:33
【问题描述】:
我正在使用 SVG 制作一个简单的加载微调器元素。它在 Chrome 中运行良好,但在其他浏览器中却不行。在 IE 中,动画根本不起作用。更麻烦的是,在 FF 中,动画可以工作,但旋转的中心位置不正确。
我该怎么做才能让它在 FF 中正确旋转? (编辑:它实际上在 FF 42alpha 中正常工作。)我能做些什么让它在 IE 中工作吗? (针对这些浏览器的当前版本)
下面的sn-p包含相关的CSS和HTML:
svg.spinner {
display: block;
width: 50px;
}
svg.spinner path {
fill-opacity: 0;
stroke-width: 11;
}
svg.spinner path.track {
stroke: rgba(92, 112, 128, 0.2);
}
svg.spinner path.head {
stroke: rgba(92, 112, 128, 0.5);
stroke-linecap: round;
/* -webkit-transform-origin: 50px 50px; */
-ms-transform-origin: 50px 50px;
transform-origin: 50px 50px;
-webkit-animation: spin 2s linear infinite;
animation: spin 2s linear infinite;
}
@-webkit-keyframes spin {
from {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes spin {
from {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
<svg class="spinner" viewBox="0 0 100 100">
<path class="track" d="M 50,50 m 0,-44.5 a 44.5,44.5 0 1 1 0,89 a 44.5,44.5 0 1 1 0,-89"></path>
<path class="head" d="M 91.81632162497291 65.21989637799226 A 44.5 44.5 0 0 0 50 5.5"></path>
</svg>
【问题讨论】:
-
FF 对
transform-origin的解释与 Chrome 不同。我相信 FF 使用 SVG 的 0.0 点,而 Chrome 使用 SVG 的中心。这就是创建 Snap.svg 和 Greensock 等库的原因。搜索左侧的相关问题 --> 可能会为您找到一些东西。 -
我认为这个很重要,以防我的信息不正确或过时 - stackoverflow.com/questions/24203492/…
-
正要链接到同一个问题,@Paulie_D! ;) Looks like 它还没有为 IE 打补丁。
-
@Paulie_D @jaunt 我没有在
transform-origin中使用百分比,我使用的是像素。
标签: css internet-explorer firefox svg css-animations