2017-07-27 4 views
3

Ich benutze d3 Version 3 und ich versuche, d3 Easy-Funktion für die Animation zu verwenden. Nach der Definition der Funktion hat einen RückgabewertWie erhalten Sie den zurückgegebenen Wert von d3.ease?

function ease(type: 'cubic-in'): (t: number) => number; 

ich eine Nummer als Rückgabewert erwarten es in meiner Berechnung zu verwenden. Aber jetzt, wie kann ich den Rückgabewert der Leichtigkeit-Funktion zu einer Zahl umwandeln. Gibt es einen anderen Weg, dies zu erreichen?

Vielen Dank.

+0

Ich habe den Titel der Frage bearbeitet, um besser zu erklären, was, glaube ich, dein Problem ist. Wenn ich falsch liege, rollen Sie es einfach zurück. –

+0

Das war absolut richtig. Danke vielmals. @GerardoFurtado :) – Tums

Antwort

3

d3.ease gibt bereits eine Zahl zurück.

Sie müssen nur den Wert, den Sie d3.ease wollen weitergeben müssen:

d3.ease(type)(value); 

Hier eine Demo mit "cubic-in" ist, wie es in Ihrer Frage:

function ease(value) { 
 
    return d3.ease("cubic-in")(value); 
 
} 
 

 
console.log("ease for 0.1: " + ease(4)); 
 
console.log("ease for 0.5: " + ease(0.5)); 
 
console.log("ease for 0.8: " + ease(0.8)); 
 
console.log("ease for 0.95: " + ease(0.95));
<script src="https://d3js.org/d3.v3.min.js"></script>

Haltungsart Beachten Sie, dass der übergebene Wert und der zurückgegebene Wert zwischen 0 undliegen. Nach den API:

Eine Beschleunigungsfunktion des aktuellen parametrisierte Zeitwert t in der Domäne nimmt [0,1], und bildet sie auf einem anderen Wert in einem ähnlichen Bereich.

+0

Vielen Dank :) – Tums

+0

Könnten Sie bitte führen Sie mich mit dieser Frage? https://stackoverflow.com/questions/45472246/how-to-use-timer-in-d3-v3 Danke. – Tums

+1

Sie benötigen 'd3.timeout' anstelle von' d3.timer'. ich kann jetzt keine antwort schreiben, wenn niemand in ein paar stunden antwortet, zeige ich dir, wie es geht. –

Verwandte Themen