解决SVG animation 在IE中不起作用
问题描述
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中不起作用相关推荐
- 解决svg标签在HTML中的渲染问题
在做项目时候我使用appendChild()方法将svg类的标签添加到DOM树中时,它竟然没有渲染.百科中说:SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语 ...
- Eclipse中解决.svg文件报错的问题
写这篇文章纯粹是因为在网上搜索不到解决办法,google也试过了,估计这个问题,关注的人很少吧 废话不多说了,下面来看解决办法: 解决的原理是去掉svg文件的校验,就是在xml校验中增加排除校验svg ...
- svg android动画制作,SVG动画案例的学习_SVG, SVG Animation, Animation, Web动画 教程_W3cplus...
平面设计已成为2016年可见的趋势,显然,这就是SVG用法又重新走入人们的视野的原因.好处有很多: 独立的分辨率.跨浏览器兼容性以及DOM节点的可访问性.本文中,我们将看看如何使用SVG从简单的插图创 ...
- SVG animation 回顾
想起来学习SVG动画完全是因为做比赛时,需要用到沿着运动路径运动,作为一个前端萌新,css3显然无法做到,就现学了SVG动画. 一. SVG animation元素 <set> <a ...
- 【Android游戏开发十四】深入Animation,在SurfaceView中照样使用Android—Tween Animation!...
本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/331.html 之 ...
- SVG animation动画
一:简介 由于Web是一个动态的媒介,SVG有支持实时动画能力.SVG的内容可以使用下面的方式添加动画: 1.使用SVG动画元素SVG文档片段可以描述基于时间对文档元素的修改.通过各种各样的动画元素, ...
- 【Android游戏开发十四】深入Animation,在SurfaceView中照样使用Android—Tween Animation!
李华明Himi 原创,转载务必在明显处注明: 转载自 [黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/331.html 很多童鞋说 ...
- 解决springboot读取jar包中文件的问题
解决springboot读取jar包中文件的问题 参考文章: (1)解决springboot读取jar包中文件的问题 (2)https://www.cnblogs.com/songxiaotong/p ...
- centos桌面进入服务器,解决如何在centos7桌面中打开终端_网站服务器运行维护
如何解决在Centos中NAT无法上网_网站服务器运行维护 在Centos中NAT无法上网的解决方法:首先将网络设置为"DHCP"自动获取IP:然后查看主机的相关服务是否开启:最后 ...
- linux系统python截图不显示中文_Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题...
本文主要向大家介绍了Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题,通过具体的内容向大家展现,希望对大家学习Linux运维知 ...
最新文章
- 小脚本,统计一个目录下满足特定条件文件的代码行数
- 小白 vue-cli 项目打包
- [JSOI2016] 最佳团体(0/1分数规划 + 树形dp)
- html列表滑动字母索引,js实现做通讯录的索引滑动显示效果和滑动显示锚点效果...
- HTTP与HTTP协议
- git clone拉取指定分支
- Android 阿里云热修复
- 机械臂速成小指南(一):机械臂发展概况
- 国内外知名的待办事项app有哪些
- Financial knowledge
- 衡量计算机储存容量的常用计量单位是,衡量存储器的单位是什么
- SpringCloud接入Nacos作为「注册中心」和「配置中心」
- java-unrar-0.3.jar_java-unrar-0.3.jar解压
- 马桶品牌十大排名榜2022 马桶什么牌子好又实惠
- SqlCommand.ExecuteNonQuery()的返回值问题
- Oracle EBS 模拟登陆
- x3650m4服务器主板型号,【联想x3650 M4参数】联想x3650 M4系列服务器参数-ZOL中关村在线...
- 基于 FFMPEG 的像素格式变换(swscale,致敬雷霄骅)
- python中序列是什么意思_python序列是指什么
- php100分闯关,有趣!php使用adb自动刷王者农药金币 【冒险模式】