Это домашняя работа, которую вы должны делать сами?Я не буду переписывать, поэтому вы получите A, но вот кое-что, чтобы показать, что вы идете ...
var sliderModule = (function(win, doc) {
win.onload = init;
// canvas and context variables
var canvas1, canvas2, canvas3;
var context1, context2, context3;
function init() {
// draw the initial pattern
draw('bullsEye1',doc.getElementById('bandWidth1').value, 'currentBandWidth1');
draw('bullsEye2',doc.getElementById('bandWidth2').value, 'currentBandWidth2');
draw('bullsEye3',doc.getElementById('bandWidth3').value, 'currentBandWidth3');
}
function draw(can,val, outid){
const canvas=doc.getElementById(can);
const context = canvas.getContext('2d');
const output=doc.getElementById(outid)
canvas.width = 100;
canvas.height = 100;
const colors = ['#F00', '#00F'];
const outerRadius = 50;
let bandSize = val;
output.innerHTML = bandSize;
for (
let r = outerRadius, colorIndex = 0; r > 0; r -= bandSize, colorIndex = (colorIndex + 1) % colors.length
) {
context.fillStyle = colors[colorIndex];
context.beginPath();
context.arc(canvas.width / 2, canvas.height / 2, r, 0, Math.PI * 2);
context.closePath();
context.fill();
}
}
return {
draw:draw
};
})(window, document);
main {
width: 100%;
}
div {
width: 30%;
}
#left {
float: left;
margin-left: 2%;
}
#middle {
position: relative;
left: 0px;
right: 0px;
margin: auto;
}
#right {
float: right;
margin-right: 2%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<title>Bulls Eye</title>
<head>
</head>
<body>
<main>
<div id="left">
<canvas id="bullsEye1" style="border: 1px solid;"> </canvas><br>
<label for="bandWidth1">BandWidth:</label>
<input type="range" id="bandWidth1" min="5" max="50" step="5" value="25" oninput="sliderModule.draw('bullsEye1',this.value,'currentBandWidth1')"></input>
<p>Current band width: <span id="currentBandWidth1"></span></p>
</div>
<div id="right">
<canvas id="bullsEye2" style="border: 1px solid;"></canvas><br>
<label for="bandWidth2">BandWidth:</label>
<input type="range" id="bandWidth2" min="5" max="50" step="5" value="25" oninput="sliderModule.draw('bullsEye2',this.value,'currentBandWidth2')"></input>
<p>Current band width: <span id="currentBandWidth2"></span></p>
</div>
<div id="middle">
<canvas id="bullsEye3" style="border: 1px solid;"></canvas><br>
<label for="bandWidth3">BandWidth:</label>
<input type="range" id="bandWidth3" min="5" max="50" step="5" value="25" oninput="sliderModule.draw('bullsEye3',this.value,'currentBandWidth3')"></input>
<p>Current band width: <span id="currentBandWidth3"></span></p>
</div>
<br style="clear:both;" />
</main>
</html>