Вопрос:

Как сбросить / очистить d3-кисть?

d3.js d3v4

2687 просмотра

1 ответ

844 Репутация автора

D3 версия 4.2.2

У меня есть диаграмма, где я хочу, чтобы пользователь мог продолжать масштабирование с помощью выбора кистей. Я хочу очистить или сбросить мою кисть в конечном событии, чтобы пользователь не видел старую кисть.

Текущий код TypeScript:

    let brushGroup = this.svg.append('g')
        .attr('class', 'brush');

    let b = brushX()
        .on('start', () => {
            console.log('start brush');
            brushGroup.style('opacity', 100);
        })
        .on('end', () => {
            console.log('end brush', event.selection);
            // remove and display none destroy the brush, so use opacity
            brushGroup.style('opacity', 0);

            this.updateDateRange(this.xScale.invert(event.selection[0]),
                this.xScale.invert(event.selection[1]));
        });

    brushGroup.call(b);
    console.log(brushGroup);
  • display: none предотвращает будущие события запуска кисти
  • brushGroup.remove() также разрушает кисть
  • Непрозрачность работает, но кисть все еще там (курсор мыши меняется при наведении)

Так каков правильный способ очистки или сброса кисти?

  1. Должен ли я просто переместить его в 0,0?
  2. Должен ли я уничтожить старую кисть и каждый раз создавать новую?
Автор: Arlo Источник Размещён: 22.08.2016 08:45

Ответы (1)


7 плюса

2941 Репутация автора

Решение

selection.call (brush.move, null);

https://github.com/d3/d3-brush/issues/10

Автор: Mike Blandford Размещён: 02.09.2016 12:35
Вопросы из категории :
32x32