当前位置:首页 > JavaScript

js实现canvas

2026-02-01 20:21:20JavaScript

Canvas 基础使用

在 JavaScript 中使用 Canvas 需要先获取画布元素并设置其上下文。以下是基本步骤:

// 获取 canvas 元素
const canvas = document.getElementById('myCanvas');
// 获取 2D 渲染上下文
const ctx = canvas.getContext('2d');

绘制简单图形

Canvas 提供了多种绘制图形的方法:

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

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

绘制路径

路径绘制需要先定义路径,再填充或描边:

ctx.beginPath();
ctx.moveTo(50, 50);
ctx.lineTo(150, 50);
ctx.lineTo(100, 150);
ctx.closePath();
ctx.strokeStyle = 'green';
ctx.stroke();

文本绘制

Canvas 支持文本渲染功能:

js实现canvas

ctx.font = '30px Arial';
ctx.fillStyle = 'black';
ctx.fillText('Hello Canvas', 50, 200);

图像处理

可以在 Canvas 上绘制图像:

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

动画实现

通过 requestAnimationFrame 可以实现动画效果:

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

事件处理

可以为 Canvas 添加交互事件:

js实现canvas

canvas.addEventListener('click', function(event) {
    const rect = canvas.getBoundingClientRect();
    const x = event.clientX - rect.left;
    const y = event.clientY - rect.top;
    ctx.fillRect(x-25, y-25, 50, 50);
});

性能优化

对于复杂 Canvas 应用,需要注意性能优化:

  • 尽量减少不必要的绘制操作
  • 使用离屏 Canvas 进行预渲染
  • 合理使用 requestAnimationFrame
  • 避免频繁的 Canvas 状态改变

高级特性

Canvas 还支持更高级的功能:

// 渐变
const gradient = ctx.createLinearGradient(0, 0, 200, 0);
gradient.addColorStop(0, 'red');
gradient.addColorStop(1, 'blue');
ctx.fillStyle = gradient;
ctx.fillRect(10, 10, 200, 100);

// 阴影
ctx.shadowColor = 'gray';
ctx.shadowBlur = 10;
ctx.shadowOffsetX = 5;
ctx.shadowOffsetY = 5;
ctx.fillRect(50, 50, 100, 100);

清除画布

清除画布内容的方法:

// 清除整个画布
ctx.clearRect(0, 0, canvas.width, canvas.height);

// 部分清除
ctx.clearRect(50, 50, 100, 100);

标签: jscanvas
分享给朋友:

相关文章

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…

js 实现跳转

js 实现跳转

使用 window.location.href 进行跳转 通过修改 window.location.href 可以跳转到指定 URL,浏览器会加载新页面: window.location.hre…

js实现排序

js实现排序

数组排序方法 JavaScript提供了内置的sort()方法用于数组排序。默认情况下,sort()将元素转换为字符串并按照Unicode码点排序。对于数字排序,需传入比较函数。 const num…