0
Я хочу сделать анимацию круга с помощью d3. Я хочу показать круг, растущий при наведении мыши. для этого я использовал следующий код. код работает без ошибок, так как он не создает анимацию круга. любой совет, где я делаю неправильно. смотрите код нижеЭлемент окружности не имеет доступа
var vis = d3.select(e).append("svg")
.attr("width", svgwidth)
.attr("height", svgheight);
var circles = vis.selectAll("circle").data(sampleData);
var circleEnter=circles.enter().append("g").append("circle");
var circles = vis.selectAll("circle").data(sampleData);
var circleEnter=circles.enter().append("g").append("circle");
circleEnter.attr("cx", function (d,i)
{
Cxs[i]= xRange (d.x);
return xRange (d.x);
})
.attr("cy", function (d,i) {
Cys[i]= yRange (d.y); return yRange (d.y);
})
.attr("r", 20)
.style("fill-opacity", .2)
.style("fill", fillColor)
.on("mouseover", function(d,i)
{
d3.select(this).select("circle").transition()
.duration(750)
.attr("r",30);
}
.on("mouseout", function(d,i)
{
d3.select(this).select("circle").transition()
.duration(750)
.attr("r",20);
}
спасибо. он работал, однако мне интересно, что, если я хочу применить тот же переход к двум соседним окружениям. например, если мышь над кругом, я хочу, чтобы окружающие круги уменьшались по размеру. для этого я использовал следующее .on («mouseover», function (d, i) { d3.select (this) .circles (i + 1) .transition() .duration (750) .attr (" r12, 20), , но он возвращает ошибку. Я был бы признателен за любое предложение. привет. – Nhqazi
В этом случае я бы присвоил идентификаторы элементам, которые упрощают выбор этого способа, например, что-то, основанное на индексе: '. attr ("id", function (d, i) {return "idx" + i;}) ', а затем' d3.select ("idx" + (i + 1)). transition() ... '. –
Спасибо, я использовал вашу предлагаемую кодировку, но я нашел, что она не работает. Я еще раз запустил это и обнаружил, что он не создал никаких объектов с этими идентификаторами (return «idx» + i), и для проверки этого я использовал d3.select ("idx" + i) .attr ("id) Uncaught TypeError: Не удается прочитать свойство getAttribute. любая мысль – Nhqazi