Javascript 了解safari SVG重新绘制错误修复。
我刚刚通过snap sbg演示,遇到了以下代码行:Javascript 了解safari SVG重新绘制错误修复。,javascript,svg,snap.svg,Javascript,Svg,Snap.svg,我刚刚通过snap sbg演示,遇到了以下代码行: var flag, len = Snap.path.getTotalLength(pth.attr("d")); Snap.animate(0, len, function (l) { // Safari bug workaround: forcing redraw g.attr({width: 100 + (flag = !flag ? 1e-5 : 0) + "%"}); // var dot = p
var flag,
len = Snap.path.getTotalLength(pth.attr("d"));
Snap.animate(0, len, function (l) {
// Safari bug workaround: forcing redraw
g.attr({width: 100 + (flag = !flag ? 1e-5 : 0) + "%"});
//
var dot = pth.getPointAtLength(l);
flight.attr({
d: pth.getSubpath(0, l)
});
pln.attr({
transform: "t" + [dot.x, dot.y] +
"r" + (dot.alpha - 90)
});
gr.attr({
transform: getShift(dot)
});
}, 10000);
现在我不太理解下面的代码行:
g.attr({width: 100 + (flag = !flag ? 1e-5 : 0) + "%"});
什么是
1e-5
?有人能解释一下吗 我不熟悉Snap,但代码似乎正在将每帧的宽度属性从100%更改为100.00001%,从而导致重新绘制。1e-5,如注释中所述,是使用科学符号表示实数的数字,等于10^-5=0.00001 我不熟悉Snap,但代码似乎正在将每帧的宽度属性从100%更改为100.00001%,从而导致重新绘制。1e-5,如注释中所述,是使用科学符号表示实数的数字,等于10^-5=0.00001
flag = (!flag ? 1e-5 : 0) + "%"
同:
if(!flag) {
flag = 0.00001; //1e-5 is the scientific notation for 1^-5
} else {
flag = 0;
}
flag = flag + "%";
同:
if(!flag) {
flag = 0.00001; //1e-5 is the scientific notation for 1^-5
} else {
flag = 0;
}
flag = flag + "%";
,在本例中为0.00001,在本例中为0.00001