当前位置:首页 > JavaScript

js 实现画布

2026-01-31 18:57:47JavaScript

使用Canvas绘制基本图形

在HTML中创建Canvas元素需要定义宽度和高度,通过JavaScript获取Canvas上下文进行绘制。

<canvas id="myCanvas" width="500" height="500"></canvas>
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');

// 绘制矩形
ctx.fillStyle = 'blue';
ctx.fillRect(50, 50, 100, 100);

// 绘制圆形
ctx.beginPath();
ctx.arc(200, 200, 50, 0, Math.PI * 2);
ctx.fillStyle = 'red';
ctx.fill();

绘制路径与线条

路径绘制需要调用beginPath()开始,通过moveTo()lineTo()定义路径。

ctx.beginPath();
ctx.moveTo(300, 100);
ctx.lineTo(400, 200);
ctx.lineTo(300, 200);
ctx.closePath();
ctx.strokeStyle = 'green';
ctx.stroke();

添加文本与样式

Canvas支持文本渲染,可设置字体、对齐方式和填充颜色。

js  实现画布

ctx.font = '30px Arial';
ctx.fillStyle = 'purple';
ctx.textAlign = 'center';
ctx.fillText('Hello Canvas', 250, 400);

图像绘制与操作

通过drawImage()方法可将图像绘制到Canvas上,支持缩放和裁剪。

const img = new Image();
img.src = 'example.png';
img.onload = function() {
  ctx.drawImage(img, 100, 300, 100, 100);
};

动画实现

使用requestAnimationFrame实现动画效果,需在每一帧清除画布并重绘。

js  实现画布

let x = 0;
function animate() {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  ctx.fillRect(x, 50, 50, 50);
  x += 2;
  if (x < canvas.width) {
    requestAnimationFrame(animate);
  }
}
animate();

事件交互处理

通过监听鼠标事件实现交互式绘图。

canvas.addEventListener('mousemove', function(e) {
  const rect = canvas.getBoundingClientRect();
  const x = e.clientX - rect.left;
  const y = e.clientY - rect.top;
  ctx.clearRect(0, 0, canvas.width, canvas.height);
  ctx.fillRect(x - 25, y - 25, 50, 50);
});

保存Canvas内容

Canvas内容可导出为图像数据或文件。

// 获取图像数据URL
const dataURL = canvas.toDataURL('image/png');

// 触发下载
const link = document.createElement('a');
link.download = 'canvas-image.png';
link.href = dataURL;
link.click();

标签: 画布js
分享给朋友:

相关文章

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js实现下拉刷新

js实现下拉刷新

监听触摸事件 通过监听 touchstart、touchmove 和 touchend 事件来检测用户下拉手势。记录触摸起始位置和移动距离。 let startY = 0; let curr…