Застрял на перекрывающихся этикетках. Для иллюстрации: JSFIDDLEстоп d3 этикетки круглых упаковок от перекрытия
- Нажмите на текстовую метку «Группа А». После трансфокатора наклейка Group A остается причиной перекрытия с этикеткой небольшого круга.
- Нажмите в другом месте, чтобы уменьшить масштаб.
- Нажмите «Группа А» еще раз. На этот раз метка не останется, поэтому нет перекрытия. Так что, кажется, он исправляется после одного раза.
Я не хочу, чтобы в первый раз что-то не нажималось. Как мне это сделать? Я не хочу усекать метки или переставлять метки.
Я играл в эту битку, но пока не повезло.
transition.selectAll("text")
.filter(function(d) { return d.parent === focus || this.style.display === "inline"; })
.style("fill-opacity", function(d) { return d.parent === focus ? 1 : 0; })
.each("start", function(d) { if (d.parent === focus) this.style.display = "inline"; })
.each("end", function(d) { if (d.parent !== focus) this.style.display = "none"; });
FYI, это также происходит, если первый щелчок находится на среднем круге.
This post gets close, заявив, что он позволяет ограничить видимость с использованием выходного пакета, но не говорит, как его достичь.
Так что в основном я пытаюсь сделать что-то вроде этого: «Если увеличить до среднего или малого круга, не показывайте метку среднего круга».
Спасибо.
Boom! Это сделало это, спасибо. Это имеет смысл, что вам нужно будет исправить ошибку сразу после первоначального представления, и вы поняли это. Спасибо! [JSFIDDLE ANSWER] (http://jsfiddle.net/airwwwave/9vzx2s3v/) (хотя это не работает в области результатов jsfiddle, вам нужно запустить его. – airwwwave