D3.js - API de Transições
As transições D3 levam uma seleção de elementos e para cada elemento; ele aplica uma transição a uma parte da definição atual do elemento.
Configurando API
Você pode configurar a API de transição usando o seguinte script.
<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>
Métodos da API de transição
Vamos examinar os métodos da API de transição em detalhes.
Selecionando Elementos
Vamos discutir os vários elementos de seleção em detalhes.
selection.transition([name])- Este método é usado para retornar uma nova transição de seleção com o nome. Se um nome não for especificado, ele retornará nulo.
selection.interrupt([name]) - Este método é usado para interromper os elementos selecionados da transição com o nome e é definido a seguir.
selection.interrupt().selectAll("*").interrupt();
d3.interrupt(node[, name]) - Este método é usado para interromper a transição do nome especificado no nó especificado.
d3.transition([name]) - Este método é usado para retornar uma nova transição com o nome especificado.
transition.select(selector) - Este método é usado para selecionar o primeiro elemento que corresponde ao seletor especificado e retorna uma transição na seleção resultante, que é definida abaixo.
transition
.selection()
.select(selector)
.transition(transition)
transition.selectAll(selector)- Este método é usado para selecionar todos os elementos que correspondem ao seletor especificado e retorna uma transição na seleção resultante. É definido abaixo -
transition
.selection()
.selectAll(selector)
.transition(transition)
transition.filter(filter) - Este método é usado para selecionar os elementos que correspondem ao filtro especificado, eles são definidos abaixo.
transition
.selection()
.filter(filter)
.transition(transition)
transition.merge(other)- Este método é usado para mesclar a transição com outra transição. É definido abaixo.
transition
.selection()
.merge(other.selection())
.transition(transition)
transition.transition()- Este método é usado para retornar uma nova transição nos elementos selecionados. Está programado para começar quando a transição terminar. A nova transição herda o nome, a duração e o easing desta transição.
Example - Vamos considerar o seguinte exemplo.
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();
Aqui, o corpo desvanece para amarelo e começa apenas cinco segundos antes da última transição.
d3.active(node[, name]) - Este método é usado para retornar a transição no nó especificado com o nome.
Métodos de tempo
Vamos examinar os métodos da API de tempo de transição em detalhes.
transition.delay([value])- Este método é usado para definir o atraso de transição para o valor especificado. Se uma função for avaliada para cada elemento selecionado, ela será passada para o datum atual 'd' e índice 'i', com o contexto como o elemento DOM atual. Se um valor não for especificado, retorna o valor atual do atraso para o primeiro elemento (não nulo) na transição. É definido abaixo,
transition.delay(function(d, i) { return i * 10; });
transition.duration([value])- Este método é usado para definir a duração da transição para o valor especificado. Se um valor não for especificado, retorna o valor atual da duração para o primeiro elemento (não nulo) na transição.
transition.ease([value])- Este método é usado para facilitar o valor de transição para elementos selecionados. A função de atenuação é chamada para cada quadro da animação e passa o tempo normalizado 't' no intervalo [0, 1]. Se um valor não for especificado, ele retornará a função de atenuação atual para o primeiro elemento (não nulo) na transição.
No próximo capítulo, discutiremos o conceito de arrastar e soltar no d3.js.