Start your free trial now, and begin learning software, business and creative skills—anytime, anywhere—with video instruction from recognized industry experts.

Start Your Free Trial Now

Creating a basic animation


From:

HTML5: Graphics and Animation with Canvas

with Joe Marini

Video: Creating a basic animation

Part of the fun of working with HTML5 canvas is that you can learn how to do things like animation. So in this movie, we are going to see how to use the canvas and some JavaScript logic to make a basic animation sequence. So let me show you what it looks like. So here, I have a canvas that's light blue with a rectangle, in this case a square, that has a yellow interior and a red stroke that's just moving from left to right across the canvas, and when it disappears from view over here, it reappears over here.
Expand all | Collapse all
  1. 4m 54s
    1. Welcome
      1m 3s
    2. Using the exercise files
      2m 3s
    3. Using the HTML5 Canvas element in the real world
      1m 48s
  2. 10m 31s
    1. Real-world example: CanvasMol
      2m 9s
    2. Real-world example: Raphaël-JavaScript Library
      1m 47s
    3. Real-world example: The Wilderness Downtown
      4m 1s
    4. Real-world example: Sketchpad
      1m 10s
    5. Real-world example: Pirates Love Daisies
      1m 24s
  3. 3m 28s
    1. Installing the tools
      1m 29s
    2. Exploring the Canvas examples used in this course
      1m 59s
  4. 8m 58s
    1. Introducing the Canvas tag
      6m 30s
    2. Understanding the differences between Canvas and SVG
      2m 28s
  5. 5m 36s
    1. Identifying the Canvas element's methods and properties
      1m 40s
    2. Using the Canvas drawing context
      3m 56s
  6. 43m 14s
    1. Setting and using colors and styles
      3m 19s
    2. Drawing basic shapes: Rectangles and lines
      10m 21s
    3. Understanding the Canvas state
      5m 15s
    4. Drawing complex shapes: Arcs and paths
      9m 15s
    5. Drawing complex shapes: Bézier and quadratic curves
      5m 46s
    6. Rendering text
      9m 18s
  7. 32m 35s
    1. Creating shadows
      6m 41s
    2. Drawing with patterns
      7m 20s
    3. Drawing with gradients
      6m 18s
    4. Using clipping paths
      4m 46s
    5. Drawing images and video
      7m 30s
  8. 35m 42s
    1. Transforming objects using the translate tag
      4m 18s
    2. Scaling objects with the scale transformation
      4m 7s
    3. Rotating objects with the rotate transformation
      4m 33s
    4. Applying a custom transformation
      6m 58s
    5. Compositing in Canvas using globalAlpha
      6m 36s
    6. Manipulating raw pixels
      9m 10s
  9. 41m 23s
    1. Building an image slideshow control
      4m 24s
    2. Using smooth transitions in a slideshow
      4m 28s
    3. Creating a basic animation
      5m 42s
    4. Creating animation with double buffering
      13m 13s
    5. Incorporating Canvas into a real page
      13m 36s
  10. 48s
    1. Goodbye
      48s

please wait ...
Watch the Online Video Course HTML5: Graphics and Animation with Canvas
3h 7m Intermediate Jun 03, 2011

Viewers: in countries Watching now:

One of the most exciting additions that HTML5 offers to designers is the ability to draw free-form graphics on a drawing surface known as the Canvas. In this course, author Joe Marini introduces the technical concepts behind Canvas and shows how to perform drawing operations directly in a web page. The course covers drawing basic and complex shapes, setting colors and styles, adding shadows, patterns, and gradients, more advanced techniques such as scaling, rotating, and compositing objects, and how to incorporate Canvas elements in a slideshow and an animation.

Topics include:
  • Understanding the differences between Canvas and SVG Graphics
  • Drawing shapes
  • Drawing arcs and paths
  • Rendering text
  • Using clipping paths
  • Drawing images and video
  • Transforming objects with the translate tag
  • Manipulating raw pixels
  • Applying a custom transformation
  • Creating an animation or slideshow control with Canvas
Subjects:
Developer Web
Software:
HTML
Author:
Joe Marini

Creating a basic animation

Part of the fun of working with HTML5 canvas is that you can learn how to do things like animation. So in this movie, we are going to see how to use the canvas and some JavaScript logic to make a basic animation sequence. So let me show you what it looks like. So here, I have a canvas that's light blue with a rectangle, in this case a square, that has a yellow interior and a red stroke that's just moving from left to right across the canvas, and when it disappears from view over here, it reappears over here.

So let's see how we built this. So I am going to open up my start version of the file, and what we are going to do is we are going to take a look at the snippets code. So for the simple animation, let's go ahead and copy over the first few lines which initialize everything, and we will paste that in there. So I have got some initialization logic here. I have got some variables for the rectangle. The Y value is 200, the width is 40, and then I've got an X position which is equal to the initial value of the rectWidth, but I negate that so it's -40.

And that so the rect appears completely off the screen when it first gets drawn. So let's go back to the snippets. So let's copy the initialization function over. We will copy this here. So in the initialization function, we get a reference to the canvas and then the context, and then we call a function called blank. Blank draws the background which we will copy over in a moment. Then we have the logic which draws the rectangle. So we have a fillStyle of yellow, and then we fill the rect with the yellow content right here.

Let's go ahead and copy that over. So I am going to copy over the blank function. So you can see that the blank function simply fills the canvas. I have got a nice light blue color right here, and it fills the rectangle which is from the upper left to the width and height of the canvas. And notice, by the way, that I am using the built-in canvas properties, like width and height, rather than hard-coding the values which are down here in the document.

That way if I ever want to change the height of the canvas or make any other changes, I can just change it in one place and then my code automatically picks up the difference; I don't have to worry about changing numbers in more than one spot. So that draws the blank canvas background, and then we've got drawing the rectangle. Let's go back and copy some more code over. This is the function where the animation happens. So let's go ahead and copy that.

So the animation function, you can see up here, we set an interval every 30 milliseconds, which is about 30-ish or so frames per second, to call the function labeled anim, which is down here. So every 30 milliseconds this function will be called, and we check to see if the X position of the rectangle is less than the width of the canvas, and if it is, we then draw the blank background, we move the rectangle by five pixels, and then fill it again.

So we fill it with yellow, we stroke it with red and a lineWidth of 3, and then we fill and stroke the rectangle. Now if the rectangle has moved beyond the canvas width, if the X and Y position is greater than the width--in this case, it is just the X position-- we then reset it back to being a negative value of the rectWidth, which will place the rectangle, again, back off the screen. And the reason we do negative width is because we want the X position to be far enough to the left that none of the rectangle peeks through on the left side of the canvas.

So to recap, we've got some initialization logic. The first thing we do in the initialization function is draw the blank background, set up the initial rectangle, and then start the animation. The blank function just fills in the background, and then every time through the loop, we draw the background, draw the rectangle. And each time we were drawing the rectangle, we are moving in over by five pixels. So the effect that the user sees, because this is happening so quickly, is the blank background gets drawn, which paints over the rect. We move the rect by five pixels and then we fill it again.

Now the example of animation that I am showing here is called single buffering, and the reason it is called that is because all the animation is taking place directly on the canvas that's in the page. There's no buffer where we are drawing everything and copying it onto the canvas. So let's run this in the browser, save, and we'll go to start. And you can see that what's happening is the rectangle is moving across the screen. So it's happening too fast for you to see it, but the blank background is being drawn each time. The rectangle is moved and then painted in its new location.

Now this looks pretty smooth because there's only one moving object, but if this animation contained a lot of moving objects, we might start seeing things like flicker, because all of the objects are being erased, the background is being drawn each time, and then everything is being drawn on the canvas right here directly in the page where the user can see it. So what we see in this movie is an example of creating simple animation with what's called single buffering. But later on in this chapter, we will see an example of double buffering, which makes it easier to draw multiple objects on a canvas, and makes the animation appear much smoother to the user.

There are currently no FAQs about HTML5: Graphics and Animation with Canvas.

 
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ .

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

* Estimated file size

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed HTML5: Graphics and Animation with Canvas.

Return to your organization's learning portal to continue training, or close this page.


OK

Upgrade to View Courses Offline

login

With our new Desktop App, Annual Premium Members can download courses for Internet-free viewing.

Upgrade Now

After upgrading, download Desktop App Here.

Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member ?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Learn more, save more. Upgrade today!

Get our Annual Premium Membership at our best savings yet.

Upgrade to our Annual Premium Membership today and get even more value from your lynda.com subscription:

“In a way, I feel like you are rooting for me. Like you are really invested in my experience, and want me to get as much out of these courses as possible this is the best place to start on your journey to learning new material.”— Nadine H.

Start your FREE 10-day trial

Begin learning software, business, and creative skills—anytime,
anywhere—with video instruction from recognized industry experts.
lynda.com provides
Unlimited access to over 4,000 courses—more than 100,000 video tutorials
Expert-led instruction
On-the-go learning. Watch from your computer, tablet, or mobile device. Switch back and forth as you choose.
Start Your FREE Trial Now
 

A trusted source for knowledge.

 

We provide training to more than 4 million people, and our members tell us that lynda.com helps them stay ahead of software updates, pick up brand-new skills, switch careers, land promotions, and explore new hobbies. What can we help you do?

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.