htmlsvg兼容性,如何处理SVG的移动端的兼容性问题
我使⽤snap.svg写了⼀个页⾯,页⾯包含⼀个很简单的svg,代码⼤致如下:
// Simple dashed pattern on circle
var s = Snap("#svg");
// This will be our shape. It could be anything.
var bigCircle = s.circle(150, 150, 100);
bigCircle.attr({
stroke: "#000",
strokeWidth: 5
});
我在华为c8815⼿机上做测试,安卓版本为4.1.2,或许是不⽀持SVG,所以页⾯上没有正常显⽰图形,⽽是提⽰
Created with Snap
不兼容是正常的,但是我却发现有⼀个页⾯在这个⼿机上却是兼容的,
这个页⾯是增加了什么插件,还是使⽤了什么⽅法,可以是svg在这个测试的机型上兼容。
测试机型:华为c8815,安卓版本为4.1.2,浏览器为6.0安卓版内置浏览器、系统内置浏览器,qq浏览器(不兼容)
=======================================华丽丽分割线====================================
/* update 2015-01-21 14:45 */
恩 ⽤了纯正的svg写了,再测试的时候,发现正常的的确在测试机型的浏览器是可⾏的。然后测试了animateTransform也都是可以的。但是当我测试⽤css3结合做素描动画的时候这个测试机型就不能兼容了。
测试代码如下:
#line {
stroke-dasharray:100;
svg图形stroke-dashoffset:100;
-webkit-animation: dash 3s ease-in-out;
animation: dash 3s ease-in-out;
-webkit-animation-fill-mode:both;
animation-fill-mode:both;
}
@-webkit-keyframes dash {
to {
stroke:#f00;
stroke-dashoffset: 0;
}
}
@keyframes dash {
to {
stroke:#f00;
stroke-dashoffset: 0;
}
}
=======================================华丽丽分割线==================================
/* update 2015-01-21 更新,使⽤snap库可以兼容以上测试机型*/
完整 测试代码如下:
var s = Snap("#svg");
var line = s.select('#line');
var linelen = TotalLength();
line.attr({
strokeDasharray:linelen,
strokeDashoffset:linelen
});
line.animate({strokeDashoffset:0},3e3);
这段代码测试,使⽤snap的animate⽅法来写的动画,在测试机型上已经兼容。所以应该是css3⽅式去写的会有兼容性的问题。如果有⼈测试有问题的话,欢迎补充反馈~