Креирано 2024-09-30 Mon 14:27, притисни ESC за мапу, "м" за мени, Ctrl+Shift+F за претрагу
Обичан JavaScript:
var paragraphs = document.getElementsByTagName("p");
for (var i = 0; i < paragraphs.length; i++) {
var paragraph = paragraphs.item(i);
paragraph.style.setProperty("color", "white", null);
}
D3:
d3.selectAll("p").style("color", "white");
d3.select(...) // Селектује први.
d3.selectAll(...) // Селектује све.
d3.select("div") // по тагу
d3.select(".classname") // по класи
d3.select("#line") // по идентификатору
d3.select("[color=black]") // по атрибуту
d3.select("parent child") // по садржавању
// подселекција - селекција над селекцијом
d3.select("body").selectAll("p")
d3.selectAll("p").select("b")
var circleDemo = d3.select("#myCircle");
circleDemo.attr("r", 40);
d3.select("body").selectAll("p").style("font-size", "12px");
d3.selectAll("p").style("background-color", function() {
return "rgb(" + Math.random() * 255 + ", 100, 100)";
});
Први параграф
Други параграф
var myArray = [1, 2, 3, 4];
selection.data(myArray);
myАrrаy
се повезују за одговарајуће елементе селекције.enter
- селекција која креира нове елементе на основу нових података.exit
- селекција за брисање елемената при брисању података.// Update…
var p = d3.select("body")
.selectAll("p")
.data([4, 8, 15, 16, 23, 42])
.text(function(d) { return d; });
// Enter…
p.enter().append("p")
.text(function(d) { return d; });
// Exit…
p.exit().remove();
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>d3 test</title>
<script src="https://d3js.org/d3.v4.min.js"></script>
</head>
<body>
<script>
var test_data = [8, 16, 23];
d3.select("body")
.selectAll("p")
.data(test_data)
.enter().append("p")
.text(function(d) { return "I’m number " + d + "!"; })
.style("font-size", function(d){ return d + "px"; });
</script>
</body>
</html>
Постепена промена боје:
d3.select("body").transition()
.style("background-color", "black");
Промена величине кругова са задршком:
d3.selectAll("circle").transition()
.duration(750)
.delay(function(d, i) { return i * 10; })
.attr("r", function(d) { return Math.sqrt(d * scale); });
<svg width="720" height="120">
<circle cx="40" cy="60" r="10"></circle>
<circle cx="80" cy="60" r="10"></circle>
<circle cx="120" cy="60" r="10"></circle>
</svg>
var circle = d3.selectAll("circle");
circle.style("fill", "steelblue");
circle.attr("r", 30);
d3.select('button').on("click",
function(){
d3.selectAll("circle")
.attr("cx",
function() { return Math.random() * 720; });
}
);
circle.data([32, 57, 112]);
circle.attr("r", function(d) { return Math.sqrt(d); });
var svg = d3.select("svg");
svg.selectAll("circle")
.data([32, 57, 112, 693])
.enter().append("circle")
.attr("cy", 60)
.attr("cx", function(d, i) { return i * 100 + 30; })
.attr("r", function(d) { return Math.sqrt(d); })
.style("fill", "steelblue");
svg.selectAll("circle").data([32, 57]).exit().remove();
svg.append("circle")
.attr("cx", d.x)
.attr("cy", d.y)
.attr("r", 2.5);
svg.selectAll("circle")
.data(data)
.enter().append("circle")
.attr("cx", function(d) { return d.x; })
.attr("cy", function(d) { return d.y; })
.attr("r", 2.5);
svg.selectAll("circle")
.data([60, 100, 140])
.enter().append("circle")
.attr("cx", function(d, i) {
return i * 100 + 30; })
.attr("cy", 60)
.attr("fill", "steelblue")
.transition()
.duration(1000)
.attr("r", 20);
svg.selectAll("circle")
.data([60])
.exit()
.transition()
.duration(1000)
.attr("r", 0).remove();