Программа включает в себя прямоугольник с заданным цветом на основе кнопки, нажатой в HTML, передающей цвет в метод.Есть также другое текстовое поле и кнопка для добавления текста в этот прямоугольник, но цвет текста не остается независимым от цвета прямоугольника.Это означает, что прямоугольник всегда устанавливается на любой цвет текста.То, что я пытаюсь сделать, это выбрать цвет сумки, а затем выбрать текст на сумке, сохраняя при этом цвет сумки.Я думал, что context.beginPath()
должен позволять им быть отдельными, но, похоже, этого не происходит.Любая помощь в том, что я должен делать вместо этого?
Файл JavaScript
function drawCanvas(color) {
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var logoText = document.getElementById("logoText").value;
//Draws the bag and sets the color
context.beginPath()
context.fillStyle = color;
context.fillRect(10,30,200,200);
//Draws the border outline of the bag
context.beginPath();
context.lineWidth = "2";
context.rect(10,30,200,200);
context.stroke()
//Draws the handle
context.beginPath();
context.lineWidth = "2";
context.rect(85,5,50,25);
context.stroke();
context.save();
context.restore();
context.beginPath();
context.font = "24px Times";
context.fillStyle = "black";
context.textAlign = "center";
context.fillText(logoText, canvas.width/2, canvas.width/2);
}
window.onload = drawCanvas;
Файл HTML
<!DOCTYPE html>
<html lang = "en">
<head>
<title>mas00266 - Plastic Bag Inc. - Order Page</title>
<link rel = "stylesheet" href = "stylesheet.css" />
<script type = "text/javascript" src = "script.js"></script>
<meta charset = "UTF-8">
</head>
<body>
<div class = "flex-container">
<div class = "box">
<h1 id = "left"> The Bag Company </h1>
</div>
<div class = "box">
<h3 style = "text-align: right; padding: 15px"> Welcome to our orders page! </h3>
</div>
</div>
<nav>
<ul class = "navStyle">
<li><a href = "Homepage.html">Home</a></li>
<li class = "active"><a href = "#">Order</a></li>
<li><a href = "#">Contact</a></li>
<li><a href = "#">Login</a></li>
</ul>
</nav>
<br>
<br>
<canvas id = "myCanvas" width = "220" height = "240"></canvas>
<br>
<br>
<h4>Choose your bag color:</h4>
<button type = "button" onclick = "drawCanvas('black')">Black</button>
<button type = "button" onclick = "drawCanvas('white')">White</button>
<button type = "button" onclick = "drawCanvas('red')">Red</button>
<button type = "button" onclick = "drawCanvas('blue')">Blue</button>
<button type = "button" onclick = "drawCanvas('green')">Green</button>
<br>
<h4>Enter text on the bag:</h4>
<input id = "logoText" type = "text" name = "textInputField" size = "12">
<button type = "button" onclick = "drawCanvas()">Add Text</button>
</body>
</html>