对于遇到问题,这个人,我有一个解决办法。
我有一个完整的SVG ID和CSS动画,都适用于所有其他主流浏览器。
我把我的SVG插入到HTML中,所以我可以访问CSS动画的每个项目。
对于这个工作,你必须有你的SVG与位置:
absolute; top: 0px; left: 0px,
...一个容器内.svgcontent
(或任何你想将它命名)
脚本:
var IE = (navigator.userAgent.indexOf("Edge") > -1 || navigator.userAgent.indexOf("Trident/7.0") > -1) ? true : false;
objs = [ '#file1', '#file2','#file3','#file4','#file5','#file6','#file7','#file8','#file9','#file10','#file11', '#bottom' ];
if (IE){
objs.forEach(function (item) {
item = $(item);
id = item.attr('id');
svgcontent = item.closest('.svgcontent')
svg = item.closest('svg');
svgattrs = ' width='+svg.attr('width')+' height='+svg.attr('height')+' '
html = '<svg id="'+id+'" '+svgattrs+'>'+item.html()+'</svg>';
item.remove();
$(svgcontent).prepend(html);
});
}
这将获取objs
数组中的所有元素,并将它们作为完整的SVG插入到t他第一个(你可以改变prepend
到append
来改变这种行为)。
而SVG将与对象具有相同的id,因此CSS动画将应用于完整的SVG,而不是SVG对象。
就是这样!
哪个版本的IE? –
在浏览器11上进行Im测试 – canute
您必须为您在IE中看到的颜色定义笔触属性。但我认为你将不得不使用单独的CSS动画属性来代替简单的'animation' CSS属性。你可以在这里看到:http://jsfiddle.net/z8w4vuau/50/ ..我如何在'.loader-path''' circle'元素上添加'stroke'属性并增加了'stroke-dasharray'所以你可以看到它正在旋转,但是IE并没有为你的'stroke-dasharray'和'stroke-dashoffset'设置动画。因此,只需使用长格式的CSS动画属性即可。 –