Это может быть тривиально для некоторых людей, но я новичок в D3JS.D3JS колебательные пузыри
Я пытаюсь построить два статических пузырька с изменением непрозрачности относительно массива. Я могу построить пузырьки, но я не могу постоянно менять их прозрачность. Я использую transition
и delay
, а непрозрачность может меняться только один раз. Вот мой пример кода
(function() {
var dropsize = 100;
var gapsize = 20;
var osc = [[1, 1],[0.5, 0.5],[0, 0],[0.5, 0.5],[1, 1],[0.5, 0.5],[0, 0],[0.5, 0.5]];
var radius = dropsize/2;
var h = 100;
var w = (4 * radius + 3 * gapsize);
var svg = d3.select("#chart").append("svg");
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h)
.style("background-color", "teal");
var circles = svg.selectAll("circle")
.data([radius, 3 * radius])
.enter()
.append("circle");
circles.attr("cx", function(d, i) {
return d + (i + 1) * gapsize;
})
.attr("cy", h/2)
.attr("r", function(d, i) {
return radius;
})
.attr("fill", "orange")
.attr("class", "droplet")
.attr("id", function(d, i) {
return "c_" + (i + 1);
});
d3.select("#c_1")
.data(osc)
.transition().delay(function(d, i) {
return i * 1000;
})
.duration(1000)
.attr("opacity", function(d) {
return d[0]
});
})();
Смотрите Pen Bubble Chart with D3.js using Realtime Data
Это прекрасно работает. Спасибо @Gerardo Furtado. Оба пузырька должны иметь возможность осциллировать с различной непрозрачностью. Таким образом, одна пара содержит непрозрачность для каждого пузыря соответственно. – kthouz
Теперь это имеет смысл! Имейте в виду, что в моем коде два значения в массиве данных представляют собой два осциллирующих значения для непрозрачности. –
Да, понял. Однако из-за какой-то будущей заявки я решил использовать 'setInterval' следующим образом: ' tic = new Date(); setInterval (function() { dt = Math.round ((new Date() - tic)/50)% osc.length; d3.select ("# c_1") .переход(). Duration (100). («opacity», function() {return osc [dt] [0]}); d3.select ("# c_2"). transition(). duration (100) .style ("opacity", function() {return osc [dt] [1]}); }) ' – kthouz