使用canvas绘制图形,表单组件及按钮相应事件,要求:在网页中添加表单组件,要求用户输入统计数据,根据用户数据绘制相应的饼状图和柱状图。 1.要求对用户输入进行有效性验证; 2.通过点击按钮绘制饼状图或柱状图; 3.饼状图和柱状图要有数据标注。
时间: 2024-11-20 17:55:54 浏览: 21
在HTML5中,你可以利用`<canvas>`元素结合JavaScript来满足这个需求。首先,创建基本的页面结构,包含一个输入框、两个按钮(用于切换图表类型)以及一个Canvas区域:
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Canvas图表</title>
<style>
canvas {
border: 1px solid black;
}
</style>
</head>
<body>
<form id="data-form">
<label for="stats">请输入统计数据:</label>
<input type="number" id="stats-input" required>
<button type="submit">绘制饼状图</button>
<button type="button" onclick="drawColumnChart()">绘制柱状图</button>
</form>
<canvas id="chart-canvas" width="400" height="400"></canvas>
<script src="chart.js"></script>
</body>
</html>
```
然后,在`chart.js`文件中,编写JavaScript函数处理表单提交、数据验证和绘图:
```javascript
// 假设这是获取用户输入并检查有效性的函数
function getUserData() {
const input = document.getElementById('stats-input');
if (!isNaN(input.value) && input.value > 0) {
return Number(input.value);
} else {
alert("请输入有效的正数!");
return null;
}
}
// 饼状图绘制函数
function drawPieChart(stats) {
// ... 实现饼状图绘制代码
// 示例:假设你已经有了一个名为pieChart的函数
if (stats !== null) {
pieChart(stats);
}
}
// 柱状图绘制函数
function drawColumnChart() {
// ... 实现柱状图绘制代码
// 示例:假设你已经有了一个名为barChart的函数
drawPieChart(getUserData()); // 先确保数据有效再画图
}
// 表单提交事件处理器
document.getElementById('data-form').addEventListener('submit', function(e) {
e.preventDefault(); // 阻止表单默认提交行为
const stats = getUserData();
if (stats !== null) { // 如果数据有效
drawPieChart(stats); // 绘制饼状图
}
});
```
在这个例子中,当用户填写并提交表单时,会先检查输入是否有效。如果有效,会根据选择的图表类型(这里仅示例了饼状图)调用对应的绘制函数。记得在实际项目中替换`pieChart`和`barChart`为实际的绘图代码。
阅读全文