【发布时间】:2018-02-13 12:10:50
【问题描述】:
我正在尝试为图像/对象标签中的 SVG 设置动画,但它不起作用
svg {
width: 100%;
height: 200px;
}
.rotate-45 {
transform-origin: center;
transform: rotate(45deg);
}
.rotate {
transform-origin: center;
animation: rotate 1s ease-in-out infinite;
}
.rotate-back {
transform-origin: center;
animation: rotate 1s ease-in-out infinite;
animation-direction: alternate;
}
.left {
animation: move 1s ease-in-out infinite;
}
.right {
animation: move 1s ease-in-out infinite;
}
@keyframes rotate {
100% {
transform: rotate(calc(90deg + 45deg));
}
}
@keyframes move {
50% {
transform: translate(-30px, -30px);
}
}
<svg width="100%" height="100%" viewBox="0 0 1000 1000" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
<g transform="translate(500,500)">
<rect class="rotate-45 rotate-back" x="-5" y="-5" width="10" height="10" stroke="#00a99d" stroke-width="20" fill="none" />
<rect class="rotate-45 rotate" x="-50" y="-50" width="100" height="100" stroke="#00a99d" stroke-width="20" stroke-linejoin="bevel" fill="none" />
<g transform="translate(-50,0) rotate(-45)">
<polyline class="left" points="40,-40 50,-50 -40,-50 -50,-40 -50,50 -40,40" stroke="#00a99d" stroke-width="20" fill="none" />
</g>
<g transform="translate(50,0) rotate(135)">
<polyline class="right" points="40,-40 50,-50 -40,-50 -50,-40 -50,50 -40,40" stroke="#00a99d" stroke-width="20" fill="none" />
</g>
<text y="-140" text-anchor="middle" font-weight="bold" font-size="3em" font-family="sans-serif">loading data...</text>
</g>
</svg>
如何将图像标签内的 SVG 与 CSS 一起制作动画
这是该代码https://plnkr.co/edit/TdfR7cpVaQArtcUs0Hro?p=preview的plunker
【问题讨论】:
-
你的标题没有说明这个问题。请在标题中简要说明您的问题
-
你似乎需要帮助做 CSS 动画,这与 SVG 无关。
-
将你的 CSS 直接包含在你的 svg 中,html 的文档的 CSS 不能针对 img 的内容:plnkr.co/edit/dtjUhZpzbm3NjdzsBKch?p=preview
-
你也可以使用
<?xml-stylesheet href="style.css" type="text/css"?>,如果你不想嵌入img标签来工作。上面的代码将在object标签中工作 -
@Kaiido 你没有阅读我的全部信息吗?我说如果你不想嵌入它以使
img标签工作。这适用于object标签