使SVG图标的元素在起始位置的中心旋转

教会

我有一个SVG图标,该图标已使用CSS类分为多个部分(分为电话和圆形边框)。我想将旋转变换应用于一个元素。目前,元素在左上角的轴上旋转(我相信这必须是SVG的(0,0)),我希望它在一个元素的中心旋转-本质上是在其他元素。我一直无法使用转换原点来工作。有没有办法做到这一点?

的HTML

.phone-us{
	width: 96px;
    height: 96px;
    margin: 0 auto;
    display: block;
	margin: 0 auto;
    display: block;
}

.phone-icon{
transform:translate(-549.9px, -168px);
}

@keyframes rotate {
    100% {
-webkit-transform: rotateZ(360deg);
-ms-transform: rotateZ(360deg);
-o-transform: rotateZ(360deg);
transform: rotateZ(360deg);
  }
}

.keepRotatingOne {
-webkit-animation-name: rotate;
-o-animation-name: rotate;
animation-name: rotate;
-webkit-animation-duration: 3s;
-o-animation-duration: 3s;
animation-duration: 3s;
-webkit-animation-iteration-count: infinite;
-o-animation-iteration-count: infinite;
animation-iteration-count: infinite;
}
        <svg class="phone-us" id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="121.42mm" width="121.42mm" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 430.21731 430.21731">
         <metadata id="metadata7">
          <rdf:RDF>
           <cc:Work rdf:about="">
            <dc:format>image/svg+xml</dc:format>
            <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
            <dc:title/>
           </cc:Work>
          </rdf:RDF>
         </metadata>
         <g id="layer1" transform="translate(-4.8913 -316.68)">
          <g transform="translate(4.8913 316.68)">
          <g class="keepRotatingOne">
            <path  class="phone-icon" id="path3" d="m337.48 601.2-1.1628-3.5036c-2.754-8.1856-11.781-16.723-20.074-18.972l-30.692-8.3844c-8.3232-2.2644-20.196 0.78042-26.286 6.8696l-11.108 11.108c-40.369-10.909-72.025-42.565-82.918-82.926l11.108-11.108c6.0896-6.0896 9.134-17.947 6.8696-26.27l-8.3692-30.707c-2.2644-8.308-10.817-17.335-18.987-20.058l-3.5036-1.178c-8.1856-2.7236-19.86 0.0308-25.949 6.12l-16.616 16.631c-2.9684 2.9528-4.8656 11.398-4.8656 11.429-0.58116 52.754 20.104 103.58 57.421 140.9 37.225 37.225 87.86 57.88 140.46 57.436 0.27565 0 8.966-1.8668 11.934-4.8196l16.616-16.616c6.0892-6.0892 8.8432-17.763 6.12-25.949z" fill="#489648" transform="translate(-4.8913 -316.68)"/>
            </g>
          </g>
          <circle id="path4700" cx="220" stroke="#489648" cy="531.79" r="200" stroke-width="30.217" fill="none"/>
         </g>
        </svg>

阿尔文·K。

这是我对您的动画的看法。将整个动画包裹起来<g transform=...以将其移动到所需位置(尽管我建议将其包裹在a周围,<div>然后移动它)。单线<animate...替换所有CSS编码。

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 600 600" preserveAspectRatio="none" style="width:300; height:300; top:0; left:0;">
<g transform="scale(0.5) translate(400,0)">
    <g>
        <path  class="phone-icon" id="path3" d="m337.48 601.2-1.1628-3.5036c-2.754-8.1856-11.781-16.723-20.074-18.972l-30.692-8.3844c-8.3232-2.2644-20.196 0.78042-26.286 6.8696l-11.108 11.108c-40.369-10.909-72.025-42.565-82.918-82.926l11.108-11.108c6.0896-6.0896 9.134-17.947 6.8696-26.27l-8.3692-30.707c-2.2644-8.308-10.817-17.335-18.987-20.058l-3.5036-1.178c-8.1856-2.7236-19.86 0.0308-25.949 6.12l-16.616 16.631c-2.9684 2.9528-4.8656 11.398-4.8656 11.429-0.58116 52.754 20.104 103.58 57.421 140.9 37.225 37.225 87.86 57.88 140.46 57.436 0.27565 0 8.966-1.8668 11.934-4.8196l16.616-16.616c6.0892-6.0892 8.8432-17.763 6.12-25.949z" fill="#489648" transform="translate(-4.8913 -316.68)"/>
        <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0 220 220" to="360 220 220" dur="3s" repeatCount="indefinite" />
    </g>
    <circle cx="220" cy="220" r="200" fill="none" stroke="#489648" stroke-width="30"></circle>
</g>
</svg>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使SVG图标的元素在起始位置的中心旋转

来自分类Dev

Javascript鼠标的起始位置

来自分类Dev

使用easyljs / canvas / javascript在其中心位置旋转图像,同时图像保持在起始位置

来自分类Dev

围绕中心旋转图标

来自分类Dev

围绕中心旋转图标

来自分类Dev

Windows服务图标的位置

来自分类Dev

修复箭头图标的位置?

来自分类Dev

将文本对齐到图标的中心

来自分类Dev

带有 FontAwesome 图标的中心文本

来自分类Dev

无法单击图标的元素

来自分类Dev

围绕中心旋转嵌套元素

来自分类Dev

当指针位于 svg 图标的任何元素上时保持鼠标悬停效果

来自分类Dev

SVG图像元素旋转

来自分类Dev

SVG图标破坏了以下SVG图标的颜色

来自分类Dev

图标的 SVG 线交叉动画

来自分类Dev

默认程序图标的位置在哪里?

来自分类Dev

Android-修复图标的位置

来自分类Dev

GnuCash图标的文件位置在哪里?

来自分类Dev

操纵桌面图标的位置

来自分类Dev

查找软件更新程序图标的位置

来自分类Dev

基于鼠标坐标的中心div透视旋转[Javascript]

来自分类Dev

SVG动画围绕其中心旋转组

来自分类Dev

如何设置嵌套SVG的旋转中心

来自分类Dev

移动后从中心旋转 svg 图像

来自分类Dev

如何围绕自己的中心旋转 SVG 对象?

来自分类Dev

如何从中心位置旋转imageview

来自分类Dev

保持旋转场景节点,直到设备回到起始位置

来自分类Dev

如何在中心Flutter中使用带图标的文本?

来自分类Dev

字体真棒版本4-带旋转图标的按钮