【问题标题】:Changing SVGs d="" path with material icons使用材质图标更改 SVG d="" 路径
【发布时间】:2019-02-08 19:41:48
【问题描述】:

想使用这个有吸引力的插件:SVG radial menu,但我不知道如何更改 svgs d="" 路径。我想插入例如社交图标而不是默认图标。当我把这些codepen social 的路径放在那里时(它们不同= 更大——它显示得很糟糕)。我在哪里/如何找到他们使用其 SVG 类型的方式...?我是 SVG 的新手。

谢谢

【问题讨论】:

  • 将该 SVG 加载到不会与 class 属性混淆的矢量编辑器中。我建议使用 Inkscape。在那里更新你的图标。然后将其保存,并使用新的。

标签: jquery svg path material-design google-material-icons


【解决方案1】:

codepen SVG 社交媒体图标更大,但这无关紧要。因为它们是方形的,所以很完美。为了能够使用这些图标,您需要将它们转换为符号并将它们缩小到所需的大小:在这种情况下为 96。

我已将符号 id="codepen" 放入 <defs>,并且我正在使用带有 <use> 的符号,如下所示:<use xlink:href ="#codepen" width="96" height="96"/>

接下来是我只使用一个图标的代码。为了简化,我删除了其他所有内容:

svg{height:100vh;}
<svg class="menu" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 792 792" >
  <defs>  
    <symbol id="codepen" viewBox="0 0 512 512" ><path fill="black" d="M427 201.9c-0.6-4.2-2.9-8-6.4-10.3L264.2 87.3c-4.9-3.3-11.4-3.3-16.3 0L91.4 191.6c-4 2.7-6.5 7.4-6.5 12.2v104.3c0 4.8 2.5 9.6 6.5 12.2l156.4 104.3c4.9 3.3 11.4 3.3 16.3 0L420.6 320.4c4-2.6 6.6-7.4 6.6-12.2V203.9C427.1 203.2 427.1 202.6 427 201.9 427 201.7 427.1 202.6 427 201.9zM270.7 127.1l115.2 76.8 -51.5 34.4 -63.8-42.7V127.1zM241.3 127.1v68.6l-63.8 42.7 -51.5-34.4L241.3 127.1zM114.3 231.4l36.8 24.6 -36.8 24.6V231.4zM241.3 384.9L126.1 308.1l51.5-34.4 63.8 42.6V384.9zM256 290.8l-52-34.8 52-34.8 52 34.8L256 290.8zM270.7 384.9V316.3l63.8-42.6 51.5 34.4L270.7 384.9zM397.7 280.6l-36.8-24.6 36.8-24.6V280.6z"/></symbol>   
  </defs>
  <g class="All-on" fill="none" fill-rule="evenodd" transform="translate(-571 -143)">
    <g class="menu" transform="translate(571 143)">
      <g class="outside-layer">
        <circle class="outer-cirlce-background" cx="396" cy="396" r="396" fill="#000" fill-opacity=".4"/>
        <g class="more-menu" transform="translate(654 229)">
          
          <g class="writing-button" transform="translate(24 120)">
            <title>My Posts</title>
            <circle class="Oval-2-Copy-7" cx="48" cy="48" r="48" fill="#00F7FF" opacity=".6"/>
            <use xlink:href ="#codepen"  width="96" height="96"/>
          </g>
          
        </g>
      </g>
    </g>
  </g>
</svg>

我希望它有所帮助。

更新:

我从您上面链接的代码笔中获取了&lt;symbol&gt; 的代码。我添加了一个id,这样我就可以&lt;use&gt;it,我把&lt;symbol&gt;放在&lt;defs&gt;

在您上面链接的 SVG 径向菜单中,有一个 &lt;g class="writting-button"&gt; 在这个 &lt;g&gt;里面我正在用 &lt;use xlink:href ="#codepen" width="96" height="96"/&gt; 替换 &lt;path class="Shape"&gt;。在这种情况下,“#codepen” id 是 &lt;symbol&gt; 的 id。设置&lt;use&gt; 的宽度和高度很重要。在这种情况下width="96" height="96"因为被替换的&lt;path&gt;的BBox是96/96。

我希望这已经足够清楚了。

【讨论】:

  • 在我使用您的解决方案之前,我只是问:您是否可以通过某种方式更改图标(例如,将它们更改为社交媒体图标或其他任何东西)......使用材料图标,因为它在插件中链接了他们的图标:
  • 我不太确定我是否理解您的问题 Marek Cmarko。如果你想使用谷歌的图标,当然可以。您可以使用 viewBox='0 0 24 24' 将这些图标作为 SVG 获得,因为它们是方形的,所以非常完美。
  • 我的意思是,我们不能只改变类,或者 或其他标签中的一些属性。像这样的插件,我不能按类或 SVG 属性为其他人更改图标 - 只是你在插件中看到的默认图标,如果你想要其他人,你必须按照你提供的那样做?
  • 我不使用插件,但你可以试试
  • 好的,因为我不知道怎么做,我想问你关于你的解决方案:你使用的 标签在那里,因为它是从外部页面链接的?那 id="codepen" 是如何解决的?它只是链接到 svg 中页面的链接吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
  • 2017-12-23
  • 2021-11-08
  • 2017-05-20
  • 2011-10-12
  • 2021-10-08
  • 2021-12-08
相关资源
最近更新 更多