首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确渲染和动画svg图标?

如何正确渲染和动画svg图标?
EN

Stack Overflow用户
提问于 2016-10-18 12:11:10
回答 1查看 315关注 0票数 0

我正在尝试使用svg files并将它们显示为图标。但是我遇到了一些问题

  1. 我无法在icon.svg标记中加载svg文件。最后,我使用了一个object标记。
  2. 我想添加动画到我的svg。最后,我在icon.svg文件中这样做了,<animate dur="5s" values=...; ></animate>在浏览器SVG's SMIL animations (<animate>, <set>, etc.) are deprecated and will be removed. Please use CSS animations or Web animations instead.上抛出了这个错误。
  3. 在翡翠/html中,最好的方法是什么?这就是我拥有的now..footer.tpl.jade footer.footer +nav .logo.徽标--页脚h3.href_Title.LOGO__ a.logo__link(href='/') Frit / a.logo__link(href='/')标记p.footer__content所有保留的权利或任何东西。有关资料,请参阅有关资料及服务条款.版权所有。对象.图标--心脏(type=‘image/svg+xml’,data=‘icons/Hear-ic.svg’)版权(2016年比利时)。#_icons.scss .icon {&-心{宽度:25 to;高度:20 to;//将在这里添加所有动画}

heart-icon.svg

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 37 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><path class="heart--pulse" id="Heart-Icon" d="M18,11.316c3.368,-5.316 10.105,-5.316 13.474,-2.658c3.368,2.658 3.368,7.974 0,13.29c-2.358,3.986 -8.421,7.973 -13.474,10.631c-5.053,-2.658 -11.116,-6.645 -13.474,-10.631c-3.368,-5.316 -3.368,-10.632 0,-13.29c3.369,-2.658 10.106,-2.658 13.474,2.658Z" style="fill:hsla(60, 100%, 75.1%, 1);">
    <animate dur="5s" values="hsla(0, 100%, 75.1%, 1); hsla(60, 100%, 75.1%, 1); hsla(0, 100%, 75.1%, 1)" attributeName="fill" repeatCount="indefinite"></animate>
</path><g id="Remove-Icon"><clipPath id="_clip1"><polygon points="140.007,3.906 172.007,3.92 171.993,34.007 139.993,33.993 140.007,3.906 "/></clipPath><g clip-path="url(#_clip1)"></g></g></svg>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-24 13:33:30

所以我想出了如何显示图标。下面是我的工作代码。我用它作为参考:SVG精灵 &这个SVG精灵css技巧

svg-defs.svg

代码语言:javascript
复制
<svg style='display:none;' xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
    <defs>
        <symbol id='heart-icon' viewBox='0 0 32 32'>
            <title>Heart Icon</title>
            <desc>heart-icon-svg</desc>
            <path class="heart--pulse" id="Heart-Icon" d="M18,11.316c3.368,-5.316 10.105,-5.316 13.474,-2.658c3.368,2.658 3.368,7.974 0,13.29c-2.358,3.986 -8.421,7.973 -13.474,10.631c-5.053,-2.658 -11.116,-6.645 -13.474,-10.631c-3.368,-5.316 -3.368,-10.632 0,-13.29c3.369,-2.658 10.106,-2.658 13.474,2.658Z" style="fill:hsla(60, 100%, 75.1%, 1);">
            </path>
        </symbol> <!-- End of heart-icon -->

        <symbol id="signup" viewBox= '0 0 32 32'>
            <title>Sign up Icon</title>
            <desc>signup-icon-svg</desc>
        </symbol><!-- End of signup-icon -->

        <symbol id="user-icon" viewBox= '0 0 64 64'>
            <title>User Icon</title>
            <desc>user-icon-svg</desc>
            <g id="Remove-Icon">
                <clipPath id="_clip1">
                    <polygon points="416.013,24 448.013,24.014 448,54.101 416,54.087 416.013,24 "/>
                </clipPath>
                <g clip-path="url(#_clip1)"></g>
            </g>
            <g id="SignIn-Icon">
                <path d="M45.693,58.232c0.518,1.296 0.36,2.764 -0.423,3.92c-0.782,1.156 -2.087,1.848 -3.483,1.848c-5.633,0 -13.894,0 -19.539,0c-1.404,0 -2.716,-0.696 -3.504,-1.859c-0.787,-1.162 -0.947,-2.64 -0.426,-3.943c1.491,-3.731 3.36,-8.41 4.525,-11.325c0.668,-1.672 2.282,-2.773 4.082,-2.785c2.64,-0.018 6.507,-0.044 9.351,-0.063c2.246,-0.015 4.273,1.347 5.107,3.432c1.185,2.962 2.915,7.289 4.31,10.775Z" style="fill:hsla(0, 0%, 98.8%, 1);"/>
                <ellipse cx="32" cy="32" rx="10.581" ry="13.266" style="fill:hsla(0, 0%, 98.8%, 1);"/>
            </g>
        </symbol><!-- End of signup-icon -->

  .... omitted code
   </defs>
</svg>

footer.tpl.jade (模板)

代码语言:javascript
复制
        svg.icon--heart.heart--pulse
            use(xlink:href='/icons/svg-defs.svg#heart-icon')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40107924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档