D3.js - Transitions API

Przejścia D3 pobierają wybór elementów i dla każdego elementu; stosuje przejście do części aktualnej definicji elementu.

Konfigurowanie API

Interfejs API przejścia można skonfigurować za pomocą następującego skryptu.

<script src = "https://d3js.org/d3-color.v1.min.js"></script>
<script src = "https://d3js.org/d3-dispatch.v1.min.js"></script>
<script src = "https://d3js.org/d3-ease.v1.min.js"></script>
<script src = "https://d3js.org/d3-interpolate.v1.min.js"></script>
<script src = "https://d3js.org/d3-selection.v1.min.js"></script>
<script src = "https://d3js.org/d3-timer.v1.min.js"></script>
<script src = "https://d3js.org/d3-transition.v1.min.js"></script>
<script>

</script>

Metody interfejsu API przejścia

Przyjrzyjmy się szczegółowo metodom Transition API.

Wybór elementów

Omówmy szczegółowo różne wybrane elementy.

  • selection.transition([name])- Ta metoda służy do zwracania nowego przejścia wyboru z nazwą. Jeśli nazwa nie jest określona, ​​zwraca wartość null.

  • selection.interrupt([name]) - Metoda ta służy do przerywania wybranych elementów przejścia nazwą i jest zdefiniowana poniżej.

selection.interrupt().selectAll("*").interrupt();
  • d3.interrupt(node[, name]) - Ta metoda służy do przerwania przejścia o określonej nazwie w określonym węźle.

  • d3.transition([name]) - Ta metoda służy do zwracania nowego przejścia o określonej nazwie.

  • transition.select(selector) - Ta metoda służy do wybierania pierwszego elementu, który pasuje do określonego selektora i zwraca przejście w wyniku wyboru, który jest zdefiniowany poniżej.

transition
   .selection()
   .select(selector)
   .transition(transition)
  • transition.selectAll(selector)- Ta metoda służy do wybierania wszystkich elementów, które pasują do określonego selektora, i zwraca przejście w wyniku wyboru. Jest zdefiniowany poniżej -

transition
   .selection()
   .selectAll(selector)
   .transition(transition)
  • transition.filter(filter) - Ta metoda służy do wyboru elementów pasujących do określonego filtra, zdefiniowano je poniżej.

transition
   .selection()
   .filter(filter)
   .transition(transition)
  • transition.merge(other)- Ta metoda służy do scalenia przejścia z innym przejściem. Jest zdefiniowany poniżej.

transition
   .selection()
   .merge(other.selection())
   .transition(transition)
  • transition.transition()- Ta metoda służy do zwracania nowego przejścia dla wybranych elementów. Planowane jest rozpoczęcie po zakończeniu przejścia. Nowe przejście dziedziczy nazwę, czas trwania i wygładzanie tego przejścia.

Example - Rozważmy następujący przykład.

d3.selectAll(".body")
   .transition() 
   
   // fade to yellow.
   .style("fill", "yellow")
   .transition() 
   
   // Wait for five second. Then change blue, and remove.
   .delay(5000)
   .style("fill", "blue")
   .remove();

Tutaj ciało zmienia kolor na żółty i zaczyna się zaledwie pięć sekund przed ostatnim przejściem.

  • d3.active(node[, name]) - Ta metoda służy do zwracania przejścia na określonym węźle o nazwie.

Metody pomiaru czasu

Przyjrzyjmy się szczegółowo metodom API synchronizacji czasu przejścia.

  • transition.delay([value])- Ta metoda służy do ustawiania opóźnienia przejścia na określoną wartość. Jeśli funkcja jest oceniana dla każdego wybranego elementu, jest przekazywana do aktualnego punktu odniesienia „d” i indeksu „i”, z kontekstem jako bieżącym elementem DOM. Jeśli wartość nie jest określona, ​​zwraca bieżącą wartość opóźnienia dla pierwszego (niezerowego) elementu w przejściu. Jest zdefiniowany poniżej,

transition.delay(function(d, i) { return i * 10; });
  • transition.duration([value])- Ta metoda służy do ustawiania czasu trwania przejścia na określoną wartość. Jeśli wartość nie jest określona, ​​zwraca bieżącą wartość czasu trwania dla pierwszego (niezerowego) elementu przejścia.

  • transition.ease([value])- Ta metoda służy do ułatwienia wartości przejścia dla wybranych elementów. Funkcja wygładzania jest wywoływana dla każdej klatki animacji i przechodzi przez znormalizowany czas „t” z zakresu [0, 1]. Jeśli wartość nie jest określona, ​​zwraca bieżącą funkcję zmiany dynamiki dla pierwszego (niezerowego) elementu przejścia.

W następnym rozdziale omówimy koncepcję przeciągania i upuszczania w d3.js.