问题描述

CSS animation没办法解决SVG路径运动的问题,下图路径运动的过程,通过查资料发现所有的IE的版本都不支持SVG animation。在IE中没有水流动的效果。

主要代码

<style>
svg #water_path {stroke-dasharray: 53, 200;stroke-dashoffset: -180;-webkit-animation: water 30s linear infinite;-moz-animation: water 30s linear infinite;-ms-animation: water 30s linear infinite;-o-animation: water 30s linear infinite;animation: water 30s linear infinite;}@keyframes water {0% {stroke-dashoffset: -200;}100% {stroke-dashoffset: 1000;}
}
@-ms-keyframes water {0% {stroke-dashoffset: -200;}100% {stroke-dashoffset: 1000;}
}
@-moz-keyframes water {100% {stroke-dashoffset: 1000;}
}@-webkit-keyframes water {100% {stroke-dashoffset: 1000;}
}@-o-keyframes water {100% {stroke-dashoffset: 1000;}
}</style>
<script type="text/javascript">var element = document.getElementById("animpath");var pathLength = element.getTotalLength();element.style.strokeDashoffset = pathLength;function animateRoute(e, len) {len += 1;//每次偏移的位置if (len >= 1000) {//大于1000后重置初始偏移,重复运动len = -200;}//设置元素偏移element.style.strokeDashoffset = len;//10毫秒执行一次setTimeout(function () {animateRoute(e, len);}, 10);}animateRoute(element, pathLength);
</script>
<div class="svg-warp" style="background-color: #001020;height: 100%"><svg class="home-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 800"><path class="animate" id="animpath" fill="none" stroke="#F6B457" stroke-width="6"stroke-dasharray="53, 200" stroke-linecap="round" d="M595.87,381.5c3.75,75.25-102.441,73.5-104.667,8.917l0.097-16.092"/></svg>
</div>

stroke-miterlimi 不可以添加。stroke-width="6"的值要小于等于6.从网上查资料,有案例是大于6也可以运行,感觉可能是简单路径的原因,具体原因不是很清楚,效果代码如下,测试在IE中显示效果受到很多条件的限制,但是基本上可以运动起来了。案例代码

完整效果

涉及到TweenMax制作动画,后续把完整代码整理上传,先看下效果图

总结

写东西的时候总是想着要对读者负责,但是知识有限,能完成并写出来希望能跟大家一起学习进步,有错希望能得到指点,喜欢希望能收到点赞。

更新

在开发过程中发现var pathLength = element.getTotalLength();
只能应用于path路径
这里还有另外一种实现方法,应用于path line 等
案例代码

解决SVG animation 在IE中不起作用相关推荐

  1. 解决svg标签在HTML中的渲染问题

    在做项目时候我使用appendChild()方法将svg类的标签添加到DOM树中时,它竟然没有渲染.百科中说:SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语 ...

  2. Eclipse中解决.svg文件报错的问题

    写这篇文章纯粹是因为在网上搜索不到解决办法,google也试过了,估计这个问题,关注的人很少吧 废话不多说了,下面来看解决办法: 解决的原理是去掉svg文件的校验,就是在xml校验中增加排除校验svg ...

  3. svg android动画制作,SVG动画案例的学习_SVG, SVG Animation, Animation, Web动画 教程_W3cplus...

    平面设计已成为2016年可见的趋势,显然,这就是SVG用法又重新走入人们的视野的原因.好处有很多: 独立的分辨率.跨浏览器兼容性以及DOM节点的可访问性.本文中,我们将看看如何使用SVG从简单的插图创 ...

  4. SVG animation 回顾

    想起来学习SVG动画完全是因为做比赛时,需要用到沿着运动路径运动,作为一个前端萌新,css3显然无法做到,就现学了SVG动画. 一. SVG animation元素 <set> <a ...

  5. 【Android游戏开发十四】深入Animation,在SurfaceView中照样使用Android—Tween Animation!...

    本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/331.html 之 ...

  6. SVG animation动画

    一:简介 由于Web是一个动态的媒介,SVG有支持实时动画能力.SVG的内容可以使用下面的方式添加动画: 1.使用SVG动画元素SVG文档片段可以描述基于时间对文档元素的修改.通过各种各样的动画元素, ...

  7. 【Android游戏开发十四】深入Animation,在SurfaceView中照样使用Android—Tween Animation!

     李华明Himi 原创,转载务必在明显处注明: 转载自 [黑米GameDev街区] 原文链接:  http://www.himigame.com/android-game/331.html 很多童鞋说 ...

  8. 解决springboot读取jar包中文件的问题

    解决springboot读取jar包中文件的问题 参考文章: (1)解决springboot读取jar包中文件的问题 (2)https://www.cnblogs.com/songxiaotong/p ...

  9. centos桌面进入服务器,解决如何在centos7桌面中打开终端_网站服务器运行维护

    如何解决在Centos中NAT无法上网_网站服务器运行维护 在Centos中NAT无法上网的解决方法:首先将网络设置为"DHCP"自动获取IP:然后查看主机的相关服务是否开启:最后 ...

  10. linux系统python截图不显示中文_Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题...

    本文主要向大家介绍了Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题,通过具体的内容向大家展现,希望对大家学习Linux运维知 ...

最新文章

  1. 小脚本,统计一个目录下满足特定条件文件的代码行数
  2. 小白 vue-cli 项目打包
  3. [JSOI2016] 最佳团体(0/1分数规划 + 树形dp)
  4. html列表滑动字母索引,js实现做通讯录的索引滑动显示效果和滑动显示锚点效果...
  5. HTTP与HTTP协议
  6. git clone拉取指定分支
  7. Android 阿里云热修复
  8. 机械臂速成小指南(一):机械臂发展概况
  9. 国内外知名的待办事项app有哪些
  10. Financial knowledge
  11. 衡量计算机储存容量的常用计量单位是,衡量存储器的单位是什么
  12. SpringCloud接入Nacos作为「注册中心」和「配置中心」
  13. java-unrar-0.3.jar_java-unrar-0.3.jar解压
  14. 马桶品牌十大排名榜2022 马桶什么牌子好又实惠
  15. SqlCommand.ExecuteNonQuery()的返回值问题
  16. Oracle EBS 模拟登陆
  17. x3650m4服务器主板型号,【联想x3650 M4参数】联想x3650 M4系列服务器参数-ZOL中关村在线...
  18. 基于 FFMPEG 的像素格式变换(swscale,致敬雷霄骅)
  19. python中序列是什么意思_python序列是指什么
  20. php100分闯关,有趣!php使用adb自动刷王者农药金币 【冒险模式】

热门文章

  1. Java语法总结 - 方法
  2. select系统调用
  3. 服务器文件夹只读属性,修改云服务器上文件夹只读属性
  4. java 动画 制作_【轻松一刻】Java制作字符动画
  5. Linux下高效实用的grep命令
  6. 18.3 通过打印来调试
  7. 深入解读Linux进程调度系列——数据结构解析
  8. SQlite数据库的C编程接口(一) 简介 ——《Using SQlite》读书笔记
  9. CFS完全公平调度类
  10. 51Nod 1182