task done
This commit is contained in:
2
labs/lab3/task/d3.v7.min.js
vendored
Normal file
2
labs/lab3/task/d3.v7.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
12
labs/lab3/task/index.html
Normal file
12
labs/lab3/task/index.html
Normal file
@@ -0,0 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru<head>
|
||||
<meta charset=" utf-8">
|
||||
<script src="d3.v7.min.js"> </script>
|
||||
<script src="main.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<svg></svg>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
45
labs/lab3/task/main.js
Normal file
45
labs/lab3/task/main.js
Normal file
@@ -0,0 +1,45 @@
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
svg = d3.select("svg")
|
||||
.attr("width", 2000)
|
||||
.attr("height", 2000);
|
||||
let w = parseFloat(svg.style('width'));
|
||||
let h = parseFloat(svg.style('height'));
|
||||
let r = d3.min([w, h]) * 0.1
|
||||
|
||||
|
||||
const getEntry = () => {
|
||||
return {
|
||||
"x": d3.randomUniform(w)(),
|
||||
"y": d3.randomUniform(h)(),
|
||||
"r": d3.randomUniform(r)(),
|
||||
"color": getRandColor()
|
||||
}
|
||||
}
|
||||
|
||||
let data = [];
|
||||
for (let i = 0; i < 10; i++) {
|
||||
data.push(getEntry());
|
||||
}
|
||||
|
||||
svg.selectAll(".dot").data(data)
|
||||
.enter()
|
||||
.append("circle")
|
||||
.attr("r", d => d.r)
|
||||
.attr("cx", d => d.x)
|
||||
.attr("cy", d => d.y)
|
||||
.style("fill", d => d.color)
|
||||
.attr("opacity", 1)
|
||||
.transition()
|
||||
.duration(2000)
|
||||
.ease(d3.easeLinear)
|
||||
.attr("r", d => d.r * 3)
|
||||
.attr("opacity", 0)
|
||||
.on("end",() => {
|
||||
svg.attr("style", `background :${getRandColor()}`);
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
const getRandColor = () => {
|
||||
return `rgb(${d3.randomInt(255)()},${d3.randomInt(255)()},${d3.randomInt(255)()})`
|
||||
}
|
||||
Reference in New Issue
Block a user