document.getElementById("randomButton").addEventListener(
"click",
function() {
function random(min, max) {
return Math.round(Math.random() * Math.abs(max - min) + min);
}
const r1 = random(150, 220);
const r2 = random(150, 220);
const r3 = random(150, 220);
var circle1 = document.getElementById("circle1"),
circle2 = document.getElementById("circle2"),
circle3 = document.getElementById("circle3");
var h =(r1>r2)? Math.sqrt((r1/2+r3/2)*(r1/2+r3/2)-r1*r1/4):Math.sqrt((r2/2+r3/2)*(r2/2+r3/2)-r2*r2/4),
h2 = (r1>r2)? (r1+r3)/2:(r2+r3)/2,
alpha = (r1>r2)?r1/r2:r2/r1;
circle3.style.left =`${alpha*(h-h2)}px`;
circle3.style.top =`${(5/4)*alpha*(r1-r2)/2}px`;
circle1.style.width = `${r1}px`;
circle1.style.height = `${r1}px`;
circle2.style.width = `${r2}px`;
circle2.style.height = `${r2}px`;
circle3.style.width = `${r3}px`;
circle3.style.height = `${r3}px`;
},
false
);
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
.circle-diagram {
display: flex;
align-items: center;
}
.circle-diagram .solar-grid-wrapper {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background: gray;
}
.circle-diagram .yellow-circle,
.circle-diagram .yellow-circle-shadow {
border-radius: 50%;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
color: #fff;
font-size: 12px;
width: 130px;
height: 130px;
background-color: #feda02;
position: relative;
}
.circle-diagram .green-circle,
.circle-diagram .green-circle-shadow {
border-radius: 50%;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
color: #fff;
font-size: 12px;
background-color: #25dc8a;
position: relative;
top: 0;
}
.circle-diagram .blue-circle,
.circle-diagram .blue-circle-shadow {
border-radius: 50%;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
color: #fff;
font-size: 12px;
width: 119.8px;
height: 119.8px;
background: #3d7ff9;
position: relative;
}
.circle-diagram .symbol {
height: 15px;
margin-bottom: 8px;
}
.circle-diagram .value {
z-index: 10;
opacity: 1;
font-weight: 550;
}
#randomButton {
margin-top: 60px;
border: 1px solid black;
background: #3d7ff9;
padding: 10px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Static Template</title>
</head>
<body>
<div class="circle-diagram">
<div class="solar-grid-wrapper">
<div class="yellow-circle" id="circle1" style="width: 160px; height: 160px;">
<div class="value">Cool text 1</div>
</div>
<div class="blue-circle" id="circle2" style="width: 150px; height: 150px;">
<div class="value">Cool text 2</div>
</div>
</div>
<div class="green-circle" id="circle3" style="width: 222px; height: 222px;top:7.5Px;left:-18px;">
<div class="value">Cool text 3</div>
</div>
</div>
<button id="randomButton">Random Width</button>
</body>
</html>