Как выделить один бар на клике в amcharts v4

К сожалению, решение для этого еще не найдено - текущее обходное решение состоит в том, чтобы просто заменить регулярные выражения серией вызовов Replace (или другой требуемой операции).

1
задан gala 17 January 2019 в 11:04
поделиться

1 ответ

Чтобы выделить один столбец при щелчке, сначала сделайте переключаемые столбцы:

series.columns.template.togglable = true;

Теперь, когда вы щелкаете столбец, он будет переключаться между его активными состояниями и состояниями по умолчанию, поэтому вам просто нужно создать активное состояние и определить его свойства. Вы уже делаете это с этими двумя строками кода:

var activeState = series.columns.template.states.create("active");
activeState.properties.fill = am4core.color("#E94F37");

И это все! Нет необходимости в хитовых событиях и т. П.

Если вы хотите, чтобы за раз выделялся только один столбец, тогда нам нужно событие попадания, мы просто сбросим каждый столбец, кроме того, который был нажат (независимо от того, были они активны или нет, не имеет значения) , series.columns является шаблоном списка , поэтому у него есть метод each, который позволяет перебирать все фактические столбцы (во многом как Array.forEach):

series.columns.template.events.on("hit", function(event) {
  series.columns.each(function(column) {
    if (column !== event.target) {
      column.setState("default");
      column.isActive = false;
    }
  })
});
[1112 ] Вот демонстрация:

https://codepen.io/team/amcharts/pen/abd6da81e3bd7004f70eb6069a135219

0
ответ дан notacouch 17 January 2019 в 11:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: