【发布时间】:2023-03-19 19:28:01
【问题描述】:
大家好,
我的按钮有问题。我创建了画布函数,在单击按钮后根据坐标创建一个矩形。但是,当我打开 html 文件时,输入坐标并单击按钮,它在第一次单击时不起作用。我应该重新加载页面,然后按钮开始工作。你能告诉我,为什么我的按钮在第一次点击时不起作用?请在附件中找到我的代码。
let canvas = document.querySelector("#can")
let ctx = canvas.getContext("2d")
let rect1 = inp1.value
let rect2 = inp2.value
let arr1 = rect1.split("-")
let arr2 = rect2.split("-")
createcanvas.addEventListener("click" , ()=>{
ctx.rect(arr1[0], arr1[1], arr1[2], arr1[3]);
ctx.rect(arr2[0], arr2[1], arr2[2], arr2[3]);
ctx.stroke();
})
connect.addEventListener("click" , ()=>{
ctx.beginPath()
ctx.moveTo(arr1[0],arr1[1])
ctx.lineTo(arr2[0],arr2[0])
ctx.stroke()
ctx.closePath()
ctx.beginPath()
ctx.moveTo((+arr1[0])+(+arr1[2]),arr1[1])
ctx.lineTo((+arr2[1])+(+arr2[2]),arr2[1])
ctx.stroke()
ctx.closePath()
ctx.beginPath()
ctx.moveTo(arr1[0], (+arr1[1])+(+arr1[2]))
ctx.lineTo(arr2[0], (+arr2[1])+(+arr2[2]))
ctx.stroke()
ctx.closePath()
ctx.beginPath()
ctx.moveTo((+arr1[0])+(+arr1[2]),(+arr1[0])+(+arr1[2]))
ctx.lineTo((+arr2[1])+(+arr2[2]),(+arr2[1])+(+arr2[2]))
ctx.stroke()
ctx.closePath()
ctx.stroke()
})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text" name="" id="inp1">
<input type="text" name="" id="inp2">
<button id="createcanvas">Create</button>
<button id="connect">Connect</button>
<canvas id="can" width="500px" height="500px" style="background-color: olive;display:block;"></canvas>
</body>
<script src="script.js"></script>
</html>
【问题讨论】:
标签: javascript html