一:主题部分

1.介绍

  canvas可以实现画图功能,所以只要通过js的控制,就可以实现简单的动画效果。

  这里主要是两个程序,一个小球来回上下弹跳,一个是吹气球。

2.弹跳程序

 <!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>canvas dynamic</title>
<script src="D:\jquery\jquery-1.12.4.min.js"></script>
</head>
<body>
<canvas id="dynamic" width="200" height="200"></canvas>
<br/>
<script type="text/javascript">
var width=200;
var height=200;
var start=0;
var exp=1;
var canvas=document.getElementById("dynamic");
var dynamic=canvas.getContext("2d");
function draw(){
dynamic.clearRect(0,0,width,height);
dynamic.fillStyle="red";
dynamic.beginPath();
dynamic.arc(100,start,30,0,Math.PI*2,1);
dynamic.closePath();
dynamic.fill();
start=start+exp;
if(start==0||start==height-1){
exp=exp*-1;
}
}
</script>
<input onclick="dyid=setInterval(draw,10);" type="button" value="开始"/>
<input onclick="clearInterval(dyid);" type="button" value="停止">
</body>
</html>

3.运行结果

  

4.气球程序

 <!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>canvas dynamic</title>
<script src="D:\jquery\jquery-1.12.4.min.js"></script>
</head>
<body>
<canvas id="dynamic" width="400" height="200"></canvas>
<br/>
<script type="text/javascript">
var width=400;
var height=200;
var start=0;
var exp=1;
var canvas=document.getElementById("dynamic");
var dynamic=canvas.getContext("2d");
function draw(){
dynamic.clearRect(0,0,width,height);
dynamic.fillStyle="red";
dynamic.beginPath();
dynamic.arc(200,start,start,0,Math.PI*2,1);
dynamic.closePath();
dynamic.fill();
start=start+exp;
if(start==0||start==height-1){
exp=exp*-1;
}
}
</script>
<input onclick="dyid=setInterval(draw,10);" type="button" value="开始"/>
<input onclick="clearInterval(dyid);" type="button" value="停止">
</body>
</html>

5.运行结果

  

二:问题

1.

  通过测试,发现的问题,经过多次点击之后,单击停止没有效果。

  程序只是针对一次开始,一次停止的结果。

  bug以后再进行修改。

最新文章

  1. web性能优化——浏览器相关
  2. loadrunner获取返回值为乱码
  3. sqlserver 中server 函数GETDATE(),DEFAULT用法
  4. 彻底解决_OBJC_CLASS_$_某文件名&quot;, referenced from:问题转
  5. ie6的兼容问题及解决方案
  6. java_线程-锁
  7. Java开发心得
  8. UVa 496 Simply Subsets (STL&amp;set_intersection)
  9. MPreview.js
  10. 使用python操作mysql数据库
  11. DWM1000 巧用Status 快速Debug
  12. OJ题解记录计划
  13. update date and keep time
  14. 008-js中的正则表达式
  15. SDM(Supervised Descent Method and its Applications to Face Alignment )
  16. 如何让cxgrid自动调整列宽
  17. js 弹窗广告24小时显示一次
  18. bedtools简介及应用
  19. ActiveMQ的环境搭建及使用
  20. vue.js 源代码学习笔记 ----- 工具方法 lang

热门文章

  1. 【poj2187】最远点对(勉强凑数)
  2. 【BZOJ1090】[SCOI2003]字符串折叠(动态规划)
  3. 【poj3415】 Common Substrings
  4. from表单文件上传后页面跳转解决办法
  5. AIO 开始不定时的抛异常: java.io.IOException: 指定的网络名不再可用
  6. map文件的使用
  7. ansible报错Aborting, target uses selinux but python bindings (libselinux-python) aren&#39;t installed【转】
  8. Tomcat get 中文乱码
  9. bzoj千题计划255:bzoj3572: [Hnoi2014]世界树
  10. [软件]Xcode查找系统framework所在路径