Ошибка расчета клипа HighstockPath - PullRequest
0 голосов
/ 05 декабря 2018

Я столкнулся с проблемой в Хайстоке (Highcharts).Если для свойства обрезки установлено значение true (значение по умолчанию) для серии, существует случай, когда область обрезки не обновляется / пересчитывается.

Ошибка появляется каждый раз, когда мы создаем новую ось с высотой A, меняем ее высоту наB, удалите его и создайте новый с высотой A снова с тем же идентификатором.Созданная ось обрезается с помощью clipPath удаленной оси.

Проще говоря, логика выглядит следующим образом:

chart.addAxis({..., id: Y_AXIS_TEST_ID, height: '100%'});
chart.addSeries({...});

chart.get(Y_AXIS_TEST_ID).update({height: '80%'});

chart.get(Y_AXIS_TEST_ID).remove();

chart.addAxis({..., id: Y_AXIS_TEST_ID, height: '100%'});
chart.addSeries({...});

Полный пример JSFiddle

ВоспроизвестиЧтобы решить проблему, выполните следующие действия:

  1. Нажмите кнопку «Добавить ось с данными».
  2. Нажмите кнопку «Изменить высоту».
  3. Нажмите «Удалить»кнопка.
  4. Снова нажмите кнопку «Добавить ось с данными».

Результат: ряд внутри оси обрезается с помощью clipPath, сгенерированного для высоты оси 80%;Ожидается: новая ось с данными, как на стр. 1

. В этом случае проблему можно исправить, если мы генерируем новый идентификатор каждый раз, когда создаем ось.

Нажмите на кнопку «Удалить»./ или обновите JSFiddle Установите флажок «генерировать новый идентификатор каждый раз». Выполните шаги 1 - 4.

Есть ли случаи, чтобы избежать создания кластерановый идентификатор каждый раз, когда создается ось?

1 Ответ

0 голосов
/ 05 декабря 2018

Обходной путь:

Обновите высоту оси Y до 100% перед удалением оси:

$('#remove').click(() => {
    chart.get(Y_AXIS_TEST_ID).update({height: '100%'});
    chart.get(Y_AXIS_TEST_ID).remove();
})

Демонстрация: https://jsfiddle.net/BlackLabel/g6wLhsq1/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...