返回
用JS绘制酷炫的柱状图滑动效果
前端
2023-12-28 10:34:46
绘制基本柱状图
要绘制基本柱状图,我们需要创建一个画布并使用JavaScript在画布上绘制矩形。矩形的高度应该与数据值成比例,矩形的宽度应该相等。我们可以使用以下代码来绘制基本柱状图:
// 创建画布
var canvas = document.createElement('canvas');
canvas.width = 500;
canvas.height = 300;
// 获取画布上下文
var ctx = canvas.getContext('2d');
// 设置矩形宽度
var barWidth = 50;
// 设置矩形之间的间距
var barSpacing = 10;
// 获取数据
var data = [10, 20, 30, 40, 50];
// 循环数据并绘制矩形
for (var i = 0; i < data.length; i++) {
// 计算矩形的高度
var barHeight = data[i] / 100 * 200;
// 计算矩形的x坐标
var x = i * (barWidth + barSpacing);
// 计算矩形的y坐标
var y = canvas.height - barHeight;
// 绘制矩形
ctx.fillRect(x, y, barWidth, barHeight);
}
添加动画和滚动效果
现在我们已经创建了基本柱状图,我们可以添加动画和滚动效果,使图表更加生动。我们可以使用以下代码来添加动画和滚动效果:
// 创建画布
var canvas = document.createElement('canvas');
canvas.width = 500;
canvas.height = 300;
// 获取画布上下文
var ctx = canvas.getContext('2d');
// 设置矩形宽度
var barWidth = 50;
// 设置矩形之间的间距
var barSpacing = 10;
// 获取数据
var data = [10, 20, 30, 40, 50];
// 循环数据并绘制矩形
for (var i = 0; i < data.length; i++) {
// 计算矩形的高度
var barHeight = data[i] / 100 * 200;
// 计算矩形的x坐标
var x = i * (barWidth + barSpacing);
// 计算矩形的y坐标
var y = canvas.height - barHeight;
// 绘制矩形
ctx.fillRect(x, y, barWidth, barHeight);
}
// 添加动画
setInterval(function() {
// 清除画布
ctx.clearRect(0, 0, canvas.width, canvas.height);
// 循环数据并绘制矩形
for (var i = 0; i < data.length; i++) {
// 计算矩形的高度
var barHeight = data[i] / 100 * 200;
// 计算矩形的x坐标
var x = i * (barWidth + barSpacing);
// 计算矩形的y坐标
var y = canvas.height - barHeight;
// 绘制矩形
ctx.fillRect(x, y, barWidth, barHeight);
}
// 移动画布
canvas.scrollLeft += 1;
}, 50);
示例代码
以下是一些示例代码,您可以将这些代码用于自己的项目中:
// 创建画布
var canvas = document.createElement('canvas');
canvas.width = 500;
canvas.height = 300;
// 获取画布上下文
var ctx = canvas.getContext('2d');
// 设置矩形宽度
var barWidth = 50;
// 设置矩形之间的间距
var barSpacing = 10;
// 获取数据
var data = [10, 20, 30, 40, 50];
// 循环数据并绘制矩形
for (var i = 0; i < data.length; i++) {
// 计算矩形的高度
var barHeight = data[i] / 100 * 200;
// 计算矩形的x坐标
var x = i * (barWidth + barSpacing);
// 计算矩形的y坐标
var y = canvas.height - barHeight;
// 绘制矩形
ctx.fillRect(x, y, barWidth, barHeight);
}
// 添加动画
setInterval(function() {
// 清除画布
ctx.clearRect(0, 0, canvas.width, canvas.height);
// 循环数据并绘制矩形
for (var i = 0; i < data.length; i++) {
// 计算矩形的高度
var barHeight = data[i] / 100 * 200;
// 计算矩形的x坐标
var x = i * (barWidth + barSpacing);
// 计算矩形的y坐标
var y = canvas.height - barHeight;
// 绘制矩形
ctx.fillRect(x, y, barWidth, barHeight);
}
// 移动画布
canvas.scrollLeft += 1;
}, 50);
您可以根据自己的需要修改这些代码,以便创建出符合自己需求的柱状图。