欲看效果请下载后用Chrome浏览器打开index.html观看,下载地址:https://files.cnblogs.com/files/xiandedanteng/51-NewRunningDog.rar

代码:

<!DOCTYPE html>
<html lang="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<head>
     <title>奔跑的狗 19.3.3 12:09</title>
    </head>

     <body onload="draw()">
        <canvas id="myCanvus" width="130px" height="100px" style="border:1px dashed black;">
            出现文字表示你的浏览器不支持HTML5
        </canvas>
     </body>
</html>
<script type="text/javascript">
<!--
var ctx;// 绘图环境
var cds;// 从大图中取小图的左边组
var img;// 大图

function draw(){
	var canvas=document.getElementById('myCanvus');

	canvas.width=130;
	canvas.height=100;

	ctx=canvas.getContext('2d');

	img=new Image();
	img.src="runingDog.jpg";

	// 图块坐标
	cds=[
		{'x':'50','y':'30','width':'130','height':'70'},
		{'x':'190','y':'30','width':'130','height':'70'},
		{'x':'320','y':'30','width':'130','height':'70'},
		{'x':'60','y':'110','width':'130','height':'70'},
		{'x':'190','y':'110','width':'130','height':'70'},
		{'x':'310','y':'110','width':'130','height':'70'}
   ];

	animate();
};

var index=130;
var i=0;

function animate(){
	ctx.clearRect(0,0,130,110);// 清除图案
	ctx.strokeStyle = "black";

	// 绘制地面
	ctx.beginPath();
	ctx.moveTo(0, 70);
	ctx.lineTo(ctx.width,70);
	ctx.stroke();
	ctx.closePath();

	index++;
	if(index>108){
		index=0;
	}
	i=index % 6;

	// 截取一块图贴上
	ctx.drawImage(img,cds[i].x,cds[i].y,cds[i].width,cds[i].height,0,0,cds[i].width,cds[i].height);	

	setTimeout( function(){
		window.requestAnimationFrame(animate); /// 让浏览器自行决定帧速率
	}, 0.35 * 1000 );// 延时350毫秒执行
}

//-->
</script>

  

[Canvas]New Running Dog的更多相关文章

  1. python基础之面对对象

    Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触 ...

  2. Python学习笔记 for windows 二

    函数 abs(-20)                                        //结果为:20,绝对值函数 def 函数名称([参数1,参数2,参数3]): 执行语句 retu ...

  3. python基础——继承和多态

    python基础——继承和多态 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类 ...

  4. js 实现继承相关

    ☊ [要求]:实现一个Animal类, 和一个继承它的Dog类 ☛ [实现]: function Animal(name) { this.name = name; } Animal.prototype ...

  5. python的最最最最最基本语法(3)

    模块:在Python中,一个.py文件就称之为一个模块(Module). 为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package).例如两个名不hello.py的模块分 ...

  6. javascript oo实现(转)

    javascript oo实现 By purplebamboo 7月 13 2014 更新日期:8月 21 2014 文章目录 1. 原始时代最简单的oo实现 2. 石器时代的oo实现 3. 工业时代 ...

  7. python 继承和多态

    在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Supe ...

  8. Slow Server? This is the Flow Chart You're Looking For--reference

    Your high-powered server is suddenly running dog slow, and you need to remember the troubleshooting ...

  9. Day-8: 面对对象编程

    面对过程的程序设计方法意在将函数分成子函数,再依次调用这些函数来解决问题. 而面对对象的程序设计方法,来源于自然界,类是实例的抽象,实例是类的具体.自定义出来的对象是类,而所有的数据都可以看成是对象, ...

随机推荐

  1. JavaScript进阶系列02,函数作为参数以及在数组中的应用

    有时候,把函数作为参数可以让代码更简洁. var calculator = { calculate: function(x, y, fn) { return fn(x, y); } }; var su ...

  2. 淘宝接口 TopAPi

    演示一下调用淘宝的接口,让大家心里有个数, 很简单,新建一个工程,拖一个IDHttp,Button和Memo到窗体上去 然后在这个Button的OnClick事件中写入如下代码: [delphi] v ...

  3. poi workbook转成流

    try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); workbook.write(bos); byte[] barray = ...

  4. rest api上传和下载文件

    rest api上传和下载文件 function FileToString(AFileName: string): string; var LMemoryStream: TMemoryStream; ...

  5. UITableView加载网络数据的优化

    UITableView加载网络数据的优化 效果 源码 https://github.com/YouXianMing/Animations // // TableViewLoadDataControll ...

  6. md5目录下的文件包括子目录

    find ./ -type f -print0 | xargs -0 md5sum

  7. Android反编译工具的用法

    Android的APK文件时可以反编译的,通过反编译我们就能查看到大体的代码,帮助学习.反编译仅仅提供的是学习的方式,禁止使用该技术进行非法活动. 其实就是两个命令: 1:运行(WIN+R)-> ...

  8. List转换为字符串并添加分隔符

    // 方法一: public String listToString(List list, char separator) { StringBuilder sb = new StringBuilder ...

  9. MySQL Test Suite使用

    MySQL Test Suite使用 MySQL自动测试套件(The MySQL Test Suite)用于对MySQL程序进行测试,包括各种功能与存储引擎.包含于MySQL与MariaDB版本代码中 ...

  10. libstdc++.so.6: version `GLIBCXX_3.4.21' not found

    问题: dotnet: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by dotnet)dotnet ...