SVG测试.<use/>的动画变换

1、

2、测试代码:

<html>
<meta name="description" content="心跳动画">

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1"  width="800" height="800" viewBox="0 0 400 400" style="enable-background:new 0 0 50 50;" xml:space="preserve" >
    <defs>
      <symbol id="heart01">
        <!-- ZC: 这是画的心形 -->
        <path style="fill:#C03A2B;" d="M24.85,10.126c2.018-4.783,6.628-8.125,11.99-8.125c7.223,0,12.425,6.179,13.079,13.543  c0,0,0.353,1.828-0.424,5.119c-1.058,4.482-3.545,8.464-6.898,11.503L24.85,48L7.402,32.165c-3.353-3.038-5.84-7.021-6.898-11.503  c-0.777-3.291-0.424-5.119-0.424-5.119C0.734,8.179,5.936,2,13.159,2C18.522,2,22.832,5.343,24.85,10.126z"/>
        <!-- ZC: 这是画的心形左上角的那个小圆弧 -->
        <path style="fill:#ED7161;" d="M6,18.078c-0.553,0-1-0.447-1-1c0-5.514,4.486-10,10-10c0.553,0,1,0.447,1,1s-0.447,1-1,1  c-4.411,0-8,3.589-8,8C7,17.631,6.553,18.078,6,18.078z"/>
      </symbol>
    </defs>

    <rect x="0" y="0" width="100%" height="100%" stroke="black" stroke-width="3" fill="none" />

<!--
  <g id="heart">
    <path style="fill:#C03A2B;" d="M24.85,10.126c2.018-4.783,6.628-8.125,11.99-8.125c7.223,0,12.425,6.179,13.079,13.543  c0,0,0.353,1.828-0.424,5.119c-1.058,4.482-3.545,8.464-6.898,11.503L24.85,48L7.402,32.165c-3.353-3.038-5.84-7.021-6.898-11.503  c-0.777-3.291-0.424-5.119-0.424-5.119C0.734,8.179,5.936,2,13.159,2C18.522,2,22.832,5.343,24.85,10.126z"/>
    <path style="fill:#ED7161;" d="M6,18.078c-0.553,0-1-0.447-1-1c0-5.514,4.486-10,10-10c0.553,0,1,0.447,1,1s-0.447,1-1,1  c-4.411,0-8,3.589-8,8C7,17.631,6.553,18.078,6,18.078z"/>
  </g>
-->

    <use x="0" y="0" witht="50" height="50" xlink:href="#heart01" />
    <rect x="0" y="0" width="10" height="10" fill="blue"  transform="translate(100 100)" />
</svg>


<style id="jsbin-css">
    svg
    {
        width: 100%;
        margin: 0 auto;
        text-align: center;
    }
    #heart
    {
        animation-name: beat;
        animation-duration: 1s;
        animation-timing-function: ease;
        animation-iteration-count: infinite;
    }
    @keyframes beat
    {
        0% { transform: scale(1); }
        50% { transform: scale(1.2); }
        100% { transform: scale(1); }
    }

    use
    {
        animation-name: beat02;
        animation-duration: 1s;
        animation-timing-function: ease;
        animation-iteration-count: infinite;
    }
    @keyframes beat01
    {
        0% { transform: translate(100px, 100px) scale(1); } /*ZC: 用空格隔开 ! !*/
        50% { transform: translate(100px, 100px) scale(1.2); } /*ZC: 注意,CSS中translate中的偏移量要带单位[如px/em/rem(css3)等]*/
        100% { transform: translate(100px, 100px) scale(1); } /*ZC:还要注意,渲染顺序。transform里面是从后往前一步一步来渲染的。不按照此顺序的话,可能得不到预期的效果 ! ! !*/
    }
    @keyframes beat02
    {
        0% { transform: translate(3em, 3em) scale(1); }
        50% { transform: translate(3em, 3em) scale(1.2); }
        100% { transform: translate(3em, 3em) scale(1); }
    }
</style>

</html>

 

3、

4、

5、

 

转载于:https://www.cnblogs.com/h5skill/p/9850115.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值