2016-08-27 1 views
0

Ich wollte gerade durch THIS sbg Demo Snap und ich kam in den folgenden Codezeilen:Verständnis Safari SVG Redraw Fehler beheben.

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); 

Jetzt bin nicht ganz ich die folgende Codezeile zu verstehen:

g.attr({width: 100 + (flag = !flag ? 1e-5 : 0) + "%"}); 

Was genau ist 1e-5? Kann jemand explian sein?

+0

[Scientific Notation von kleinen oder großen Zahlen] (https://en.wikipedia.org/wiki/Scientific_notation#E_notation), in diesem Fall, 0,00001 – Jorg

Antwort

1
flag = (!flag ? 1e-5 : 0) + "%" 

ist die gleiche wie:

if(!flag) { 
    flag = 0.00001; //1e-5 is the scientific notation for 1^-5 
} else { 
    flag = 0; 
} 

flag = flag + "%"; 
1

Ich bin nicht vertraut mit Snap, aber es scheint, als ob der Code die Breite Eigenschaft jeden Frame von 100% auf 100.00001% ändert, was zu einem Neuzeichnen. 1e-5, wie in Kommentaren erwähnt, ist eine Zahl, die unter Verwendung der wissenschaftlichen Notation für reelle Zahlen geschrieben ist und gleich 10^-5 = 0,00001 ist.