SVG+CSS3 简单线条动画

1 篇文章 0 订阅

CSS3:

#g1 path {
  stroke-dasharray: 1000;/*当线条很长很长的时候,这个值也要相应的的增大,否则会导致线条变成线段*/
  stroke-dashoffset: 1000;/*当线条很长很长的时候,这个值也要相应的的增大,否则会导致线条变成线段*/
  animation: dash 5s linear infinite;
}

@-webkit-keyframes dash {
  to {
    stroke-dashoffset: 0;
  }
}
@keyframes dash {
  to {
    stroke-dashoffset: 0;
  }
}

属性说明:
stroke-dasharray 表示虚线描边。可选值为:none, dasharray, inherit. 其中,none表示不是虚线;为一个逗号或空格分隔的数值列表。表示各个虚线端的长度。可以是固定的长度值,也可以是百分比值;inherit表继承。
stroke-dashoffset 表示虚线的起始偏移。可选值为:percentage, length, inherit. 百分比值,长度值,继承。

@keyframes定义和用法

"通过 @keyframes 规则,您能够创建动画。"

创建动画的原理是,将一套 CSS 样式逐渐变化为另一套样式。

在动画过程中,您能够多次改变这套 CSS 样式。

以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%。

0% 是动画的开始时间,100% 动画的结束时间。

为了获得最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器。

注释:请使用动画属性来控制动画的外观,同时将动画与选择器绑定。
----------------------------------------------
Firefox 支持替代的 @-moz-keyframes 规则。

Opera 支持替代的 @-o-keyframes 规则。

Safari 和 Chrome 支持替代的 @-webkit-keyframes 规则

SVG:

<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     width="340px" height="333px" viewBox="0 0 340 333" enable-background="new 0 0 340 333" xml:space="preserve">

  <g id="g1">
   <path id="svg_1" class="path1" d="m55.5,78.45001c11,-9 65,-30 64.5,-30.45001c0.5,0.45001 69.5,-17.54999 78.5,28.45001c9,46 -42,121 -42.5,120.54999" stroke-width="1.5" stroke="red" fill="transparent"/>
  </g>
</svg>

如果不用CS3,下面这种方法可以实现动画:
这种方法是单次循环,还不知道怎么实现多次循环,求指教。

  <script>
    var path = document.querySelector('path1');
    var length = path.getTotalLength();
    // Clear any previous transition
    path.style.transition = path.style.WebkitTransition =
      'none';
    // Set up the starting positions
    path.style.strokeDasharray = length + ' ' + length;
    path.style.strokeDashoffset = length;
    // Trigger a layout so styles are calculated & the browser
    // picks up the starting position before animating
    path.getBoundingClientRect();
    // Define our transition
    path.style.transition = path.style.WebkitTransition =
      'stroke-dashoffset 3s ease-in-out ';
    // Go!
    path.style.strokeDashoffset = '0';
</script>

运行效果:
是一条重复出现的线条动画;

一种在线编辑器:http://codepen.io/chriscoyier/pen/bGyoz

参考:纯CSS实现帅气的SVG路径描边动画效果

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTML5中的SVG可以用来创建各种炫酷的动画效果,包括多条波浪线条动画。下面是一个简单的示例代码,用于创建两条波浪线条动画: ```HTML <svg width="800" height="400"> <path id="wave1" fill="none" stroke="#00BFFF" stroke-width="5" d="M0 150 q30 30 60 0 t60 0 t60 0 t60 0 t60 0 t60 0 t60 0 v250 h-360 z"> <animateTransform attributeName="transform" attributeType="XML" type="translate" dur="10s" values="0; -400" repeatCount="indefinite" /> </path> <path id="wave2" fill="none" stroke="#00BFFF" stroke-width="5" d="M0 250 q30 -30 60 0 t60 0 t60 0 t60 0 t60 0 t60 0 t60 0 v150 h-360 z"> <animateTransform attributeName="transform" attributeType="XML" type="translate" dur="10s" values="0; -400" repeatCount="indefinite" /> </path> </svg> ``` 在这个例子中,我们创建了两个波浪线条,分别称为“wave1”和“wave2”。这些路径有一个“d”属性,用于定义路径的形状。这里我们使用了SVG的曲线命令“q”来创建波浪线条。我们还使用了SVG的路径命令“v”和“h”来定义线条的垂直和水平线段。 接下来,我们使用SVG动画功能,通过使用“animateTransform”元素来创建平移动画。我们将波浪线条沿着Y轴向下移动,并且在10秒钟内完成动画。我们还使用“repeatCount”属性使动画无限循环。 最后,我们将两个波浪线条添加到SVG元素中,并设置宽度和高度以适应我们的动画。我们还可以使用CSS样式来进一步自定义这些元素的外观。 这只是一个简单的示例,但你可以使用SVG的各种命令和动画功能来创建更复杂和炫酷的波浪线条动画

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值