search
  • Sign In
  • Sign Up
Password reset successful

Follow the proiects vou are interested in andi aet the latestnews about them taster

Table of Contents
Setting up the canvas element
Getting the drawing context
Drawing basic shapes
Rectangles
Paths and lines
Circles and arcs
Styling your drawings
Drawing text
Adding images
Animation basics
Home Web Front-end H5 Tutorial How to use the canvas element for drawing in HTML5

How to use the canvas element for drawing in HTML5

Aug 19, 2025 pm 05:42 PM
html5 canvas

To draw a graph using HTML5's <canvas> element, first set the canvas tag in HTML and get the 2D rendering context, then draw the shapes, add styles, text, images, and animations through JavaScript. 1. Set the canvas element: add the <canvas> tag with id, width and height attributes in HTML to define the drawing area; 2. Get the drawing context: Use document.getElementById() to get the canvas element, and call the getContext('2d') method to obtain the 2D drawing environment ctx; 3. Perform drawing operations: Use the ctx object to draw rectangles, paths, circles and other graphics, such as fillRect() to draw fill rectangles, and arc() to draw circles; 4. Set style: Control the color, line thickness and endpoint style through fillStyle, strokeStyle, lineWidth and other properties; 5. Draw text: Use the font, fillText() and strokeText() methods to draw fill or stroke text on the canvas; 6. Add images: Create Image object and use the drawImage() method to draw the image on the canvas in the onload event; 7. Implement animation: Clear the canvas by clearRect(), and loop redraw the drawing with requestAnimationFrame() to achieve smooth animation. This process fully demonstrates how to use canvas for dynamic graphics rendering, and ultimately build data visualization, games and other applications.

How to use the canvas element for drawing in HTML5

The <canvas></canvas> element in HTML5 lets you draw graphics dynamically using JavaScript. It's commonly used for rendering graphs, game graphics, animations, and image manipulations directly in the browser. Here's how to get started and use it effectively.

Setting up the canvas element

Start by adding the <canvas></canvas> tag to your HTML. Give it an id so you can reference it in JavaScript, and set width and height attributes.

 <canvas id="myCanvas" width="400" height="300">
  Your browser does not support the canvas element.
</canvas>

The text inside the tag appears only if the browser doesn't support <canvas> . Most modern browsers do, so this is just a fallback.

You don't need to include any extra libraries—just plain HTML and JavaScript.

Getting the drawing context

To draw on the canvas, you need to access its 2D rendering context using JavaScript.

 const canvas = document.getElementById(&#39;myCanvas&#39;);
const ctx = canvas.getContext(&#39;2d&#39;);

The ctx object is what you'll use to issue drawing commands. All shapes, colors, and text are drawn through this context.

Drawing basic shapes

Once you have the context, you can start drawing simple shapes.

Rectangles

Rectangles are the easiest to draw because there are built-in methods for them.

  • fillRect(x, y, width, height) draws a filled rectangle.
  • strokeRect(x, y, width, height) draws an outlined rectangle.
  • clearRect(x, y, width, height) clears a rectangular area.
 ctx.fillStyle = &#39;blue&#39;;
ctx.fillRect(50, 50, 100, 75);

ctx.strokeStyle = &#39;red&#39;;
ctx.strokeRect(160, 50, 100, 75);

Paths and lines

For more complex shapes, use paths.

 ctx.beginPath();
ctx.moveTo(200, 20); // Start point
ctx.lineTo(250, 100); // Draw line to this point
ctx.lineTo(150, 100); // Another line
ctx.closePath(); // Close the path (optional)
ctx.fillStyle = &#39;green&#39;;
ctx.fill(); // Fill the shape

Circles and arcs

Use the arc() method to draw circles or parts of circles.

 ctx.beginPath();
ctx.arc(100, 100, 50, 0, Math.PI * 2); // x, y, radius, start angle, end angle
ctx.fillStyle = &#39;purple&#39;;
ctx.fill();

This draws a full circle. Change the angles to draw arcs or pie slices.

Styling your drawings

You can control how shapes look using various properties.

  • fillStyle – sets the color, gradient, or pattern for filled shapes.
  • strokeStyle – sets the color or style for outlines.
  • lineWidth – sets the thickness of lines.
  • lineCap – defines the style of line ends ( butt , round , square ).
  • lineJoin – controls how corners are drawn ( bevel , round , miter ).
 ctx.lineWidth = 5;
ctx.strokeStyle = &#39;#000&#39;;
ctx.lineCap = &#39;round&#39;;
ctx.strokeRect(30, 30, 100, 100);

Drawing text

You can also render text on the canvas.

 ctx.font = &#39;20px Arial&#39;;
ctx.fillStyle = &#39;black&#39;;
ctx.fillText(&#39;Hello Canvas&#39;, 10, 30);
ctx.strokeText(&#39;Outline Text&#39;, 10, 60);
  • fillText() draws filled text.
  • strokeText() draws outlined text.

You can also align text with textAlign ( start , end , left , right , center ) and set baseline with textBaseline .

Adding images

To draw images, use drawImage() . You must wait for the image to load first.

 const img = new Image();
img.src = &#39;image.png&#39;;
img.onload = function() {
  ctx.drawImage(img, 0, 0); // x, y position
  // Or: drawImage(img, x, y, width, height)
};

This is useful for games or image processing.

Animation basics

You can animate by repeatedly clearing and redrawing the canvas. Use requestAnimationFrame() for smooth performance.

 let x = 0;

function animate() {
  ctx.clearRect(0, 0, canvas.width, canvas.height); // Clear canvas
  ctx.fillRect(x, 100, 50, 50);
  x = 2;
  if (x > canvas.width) x = 0;
  requestAnimationFrame(animate);
}

animate();

This moves a rectangle across the screen and loops it.


Basically, the canvas gives you a blank pixel grid to draw on with code. It doesn't retain shape information—once something is drawn, it's just pixels. So if you need interactivity or object management, you'll have to track positions and states yourself.

With these basics, you can build anything from data visualizations to full browser games. The key is practicing with paths, styles, and animation loops.

The above is the detailed content of How to use the canvas element for drawing in HTML5. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

ArtGPT

ArtGPT

AI image generator for creative art from text prompts.

Stock Market GPT

Stock Market GPT

AI powered investment research for smarter decisions

Popular tool

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to quickly create a virtual human explanation video with Synthesia_Synthesia virtual human video production guide [Quick] How to quickly create a virtual human explanation video with Synthesia_Synthesia virtual human video production guide [Quick] Dec 18, 2025 pm 06:54 PM

Synthesia can quickly generate high-quality virtual human explanation videos: 1. Select a virtual human and customize the voice intonation; 2. Paste the script to enable automatic lip synchronization; 3. Add dynamic backgrounds and graphic and text layers; 4. Generate multi-language versions in batches with one click; 5. Export MP4 or embed HTML5 code for publication.

What to do if the IE browser web page loads slowly? IE browser performance optimization What to do if the IE browser web page loads slowly? IE browser performance optimization Jan 15, 2026 pm 02:21 PM

Optimization methods for slow loading of IE web pages include: 1. Disable non-essential add-ons; 2. Reset IE settings; 3. Adjust connection and advanced parameters; 4. Clean system temporary files and DNS cache; 5. Turn off hardware acceleration and set to standard document mode.

Quark Browser video cannot be played. Steps to troubleshoot Quark Browser playback problems. Quark Browser video cannot be played. Steps to troubleshoot Quark Browser playback problems. Jan 22, 2026 am 09:30 AM

Solutions to abnormal video playback in Quark browser include: 1. Check network connection and access permissions; 2. Clear cache and website data; 3. Enable JavaScript and H5 playback support; 4. Switch to desktop version of UA; 5. Turn off hardware acceleration and reset media services.

3699 mini-games online play entrance, latest decompression mini-games updated daily 3699 mini-games online play entrance, latest decompression mini-games updated daily Jan 13, 2026 pm 02:12 PM

The entrance address for online play of 3699 mini games is https://www.3699.com. The platform is based on HTML5 technology and runs without plug-ins. It supports multi-terminal adaptation, CDN acceleration, preloading optimization, and decompressed games are updated daily, classified according to emotional dimensions, and taking into account both interaction friendliness and privacy and security protection.

What to do if Microsoft Edge video clarity is blurred Microsoft Edge image quality adjustment What to do if Microsoft Edge video clarity is blurred Microsoft Edge image quality adjustment Jan 04, 2026 am 10:24 AM

Edge video blur can be enabled by enabling VSR, using the enhancement button, configuring NVIDIARTX overclocking, turning off hardware acceleration or checking DRM restrictions. The corresponding solution needs to be selected based on the graphics card model, browser version and video encryption.

What should you pay attention to when collecting Shenma search on the mobile terminal? Tips for adapting to the mobile terminal [Instructions] What should you pay attention to when collecting Shenma search on the mobile terminal? Tips for adapting to the mobile terminal [Instructions] Jan 04, 2026 am 11:00 AM

In order to improve the inclusion effect of Shenma Search mobile terminal, it is necessary to adopt independent adaptation (self-jumping), add mobile-agentMeta statement, submit corresponding Sitemap for PC and mobile pages, ensure that the basic quality of mobile pages meets the standards, and verify the effective status of adaptation.

How to set full-screen mode in uc browser_Steps to set full-screen mode in uc browser [Compilation] How to set full-screen mode in uc browser_Steps to set full-screen mode in uc browser [Compilation] Jan 14, 2026 pm 09:27 PM

There are five ways to solve the problem that UC Browser cannot go full screen: 1. Turn on the full screen switch through the toolbox; 2. Add UC smart components in the settings; 3. Switch UA to the computer version and refresh the page; 4. Use the F11 key or double-click the video and other system-level operations; 5. Clear the web page and GPU cache and then restart.

How Sublime generates project structure with one click_Sublime manages project folders [dry information] How Sublime generates project structure with one click_Sublime manages project folders [dry information] Feb 05, 2026 pm 10:39 PM

SublimeText does not have a native one-click generation project structure function and needs to rely on plug-ins or external scripts: ProjectManager is used to save/switch project directories, SideBarEnhancements supports the sidebar to quickly create files and folders, ShellCommand or a custom build_system can call scripts to generate the structure, but it is recommended to use professional scaffolding (such as npminit, cookiecutter) to generate it in the terminal and then open it with Sublime.

Related articles