关注用户体验,分享前端技术

HTML5标签canvas制作动画

摘要:

  canvas可以绘制图像,自然而然的就可以制作动画,因为动画的每一帧都是图像。我们可以利用javascript的setInterval函数来实现动画效果。

下面是一个例子,小圆绕着红点圆心不停的转圆圈。

代码:

复制代码
 1 <canvas id="myCanvas" width="300" height="300">
 2         您的浏览器不支持canvas!
 3     </canvas>
 4     <script>
 5         var canvas = document.getElementById('myCanvas');
 6             if (canvas.getContext) {
 7                  var context = canvas.getContext('2d');
 8                 var posX = 100,
 9                     posY = 150,
10                     flag = true;
11                 
12                 setInterval(function() {
13                     
14                     context.fillStyle = "#ccc";
15                     context.fillRect(0,0,canvas.width, canvas.height);
16                     context.beginPath();
17                     context.fillStyle = "white";
18 
19                     context.arc(posX, posY, 20, 0, Math.PI*2, true); 
20                     context.closePath();
21                     context.fill();
22 
23                     console.log(posX + "," + posY);
24                     if(flag && posX < 201) {
25                         posX += 1;
26                     } else {
27                         posX -= 1;
28                         flag = false;
29                         if(posX < 100) {
30                             flag = true;
31                         }
32                     }
33                     if(flag) {
34                         posY = 150-Math.sqrt(2500-Math.pow(posX-150, 2));
35                     } else {
36                         posY = 150+Math.sqrt(2500-Math.pow(posX-150, 2));
37                     }
38 
39                     context.beginPath();
40                     context.arc(150, 150, 2, 0, Math.PI*2, true)
41                     context.fillStyle = "red";
42                     context.fill();
43 
44                 }, 50);
45             }
46     </script>
复制代码

 

posted @   夕阳白雪  阅读(1322)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示