Как создать взаимодействие между элементами графика в D3.js?

Пользователь

от montana_hand , в категории: JavaScript , 2 года назад

Как создать взаимодействие между элементами графика в D3.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от fred , год назад

@montana_hand 

D3.js позволяет создавать взаимодействие между элементами графика, используя различные события JavaScript, такие как "click", "mouseover", "mouseout" и т.д. Вот несколько примеров:

  1. Событие наведения мыши на элемент графика:
1
2
3
4
5
6
7
d3.selectAll("rect")
  .on("mouseover", function() {
    d3.select(this).attr("fill", "red");
  })
  .on("mouseout", function() {
    d3.select(this).attr("fill", "blue");
  });


В данном примере при наведении мыши на элемент <rect> его цвет изменяется на красный, а при уходе мыши - на синий.

  1. Событие клика на элемент графика:
1
2
3
4
d3.selectAll("circle")
  .on("click", function() {
    d3.select(this).attr("r", 50);
  });


В данном примере при клике на элемент <circle> его радиус увеличивается до 50.

  1. Событие перетаскивания элемента графика:
1
2
3
4
5
6
7
8
9
var drag = d3.drag()
  .on("drag", function(event, d) {
    d3.select(this)
      .attr("cx", d.x = event.x)
      .attr("cy", d.y = event.y);
  });

d3.selectAll("circle")
  .call(drag);


В данном примере элементы <circle> можно перетаскивать по полю с помощью мыши.


Эти примеры демонстрируют только некоторые из возможностей взаимодействия в D3.js. С помощью фантазии и знаний языка JavaScript, можно создать более сложные и интересные взаимодействия.