【发布时间】:2018-11-11 17:39:20
【问题描述】:
现在我在画布下方有三个按钮,每个按钮对应不同的灯光。
您单击红色按钮,该圆圈变为红色,而其他两个保持灰色。
我点击黄色按钮,那个圆圈变成黄色,另外两个保持灰色。
其他两个按钮也是如此。
我需要一个按钮来执行所有三个按钮的功能。
- 第一次单击将顶部圆圈变为红色,而其他两个保持灰色。
- 再次单击同一按钮会使中间圆圈变为黄色,顶部指示灯变回灰色,底部指示灯保持灰色。
- 第三次点击将底部变为浅绿色,其他两次变为灰色。
- 第四次单击重置所有三个圆圈。
var canvas = document.getElementById("myCanvas");
var red = canvas.getContext("2d");
var yellow = canvas.getContext("2d");
var green = canvas.getContext("2d");
red.beginPath();
red.arc(95, 50, 40, 0, 2 * Math.PI);
red.fillStyle = 'grey';
red.fill();
red.stroke();
red.closePath();
yellow.beginPath();
yellow.arc(95, 150, 40, 0, 2 * Math.PI);
yellow.fillStyle = 'grey';
yellow.fill();
yellow.stroke();
yellow.closePath();
green.beginPath();
green.arc(95, 250, 40, 0, 2 * Math.PI);
green.fillStyle = 'grey';
green.fill();
green.stroke();
green.closePath();
// Turns the top light red and other two lights stay grey
function redLight() {
var canvas = document.getElementById("myCanvas");
var red = canvas.getContext("2d");
red.beginPath();
red.arc(95, 50, 40, 0, 2 * Math.PI);
red.fillStyle = 'red';
red.fill();
red.stroke();
red.closePath();
yellow.beginPath();
yellow.arc(95, 150, 40, 0, 2 * Math.PI);
yellow.fillStyle = 'grey';
yellow.fill();
yellow.stroke();
yellow.closePath();
green.beginPath();
green.arc(95, 250, 40, 0, 2 * Math.PI);
green.fillStyle = 'grey';
green.fill();
green.stroke();
green.closePath();
}
// Turns the middle light yellow and the other two remain grey
function yellowLight() {
var canvas = document.getElementById("myCanvas");
var yellow = canvas.getContext("2d");
red.beginPath();
red.arc(95, 50, 40, 0, 2 * Math.PI);
red.fillStyle = 'grey';
red.fill();
red.stroke();
red.closePath();
yellow.beginPath();
yellow.arc(95, 150, 40, 0, 2 * Math.PI);
yellow.fillStyle = 'lightyellow';
yellow.fill();
yellow.stroke();
yellow.closePath();
green.beginPath();
green.arc(95, 250, 40, 0, 2 * Math.PI);
green.fillStyle = 'grey';
green.fill();
green.stroke();
green.closePath();
}
// Turns the bottom light green and the other two remain grey
function greenLight() {
var canvas = document.getElementById("myCanvas");
var green = canvas.getContext("2d");
red.beginPath();
red.arc(95, 50, 40, 0, 2 * Math.PI);
red.fillStyle = 'grey';
red.fill();
red.stroke();
red.closePath();
yellow.beginPath();
yellow.arc(95, 150, 40, 0, 2 * Math.PI);
yellow.fillStyle = 'grey';
yellow.fill();
yellow.stroke();
yellow.closePath();
green.beginPath();
green.arc(95, 250, 40, 0, 2 * Math.PI);
green.fillStyle = 'lightgreen';
green.fill();
green.stroke();
green.closePath();
}
<canvas id="myCanvas" width="250" height="300" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>
<br/>Three buttons corresponding to the different lights on a traffic light
<p><button id="button" onclick="redLight();">Red Light!</button></p>
<p><button id="button" onclick="yellowLight();">Yellow Light!</button></p>
<p><button id="button" onclick="greenLight();">Green Light!</button></p>
【问题讨论】:
-
我需要一个按钮来执行所有三个功能。
标签: javascript button canvas