Html5 Canvas 实现滚动的图片

今天一直在找html5 canvas的使用实例。想画一张地图,再画个小车在上面跑。运气好找到了一个大神写的js代码。该代码实现了图片的左右来回滚动,现在粘贴在博客里记录一下:

<html>
<head>
<meta charset="utf-8" />
<title>LScroll5.html</title>
<script type="text/javascript">
	var LScroll = {
		img : null,
		sc : null,
		scx : null,
		at : 0,
		flag : true,
		loadImg : function(srcs, callback) {
			var mg = new Image();
			mg.src = srcs;
			mg.onload = function() {
				callback(this);
			}; // callback function
			return LScroll.img = mg;
		},
		init : function(srcs) {
			if (!document.body)
				document.createElement(‘body‘);
			if (!LScroll.sc) {
				var sc = document.createElement(‘canvas‘);
				LScroll.scx = sc.getContext(‘2d‘);
				var callback = function(imgs) { // after onload image can be draw
					sc.width = imgs.width / 4;
					sc.height = imgs.height; //not style.
					sc.style.backgroundColor = ‘black‘;
					sc.style.border = ‘solid 1px white‘;
					document.body.style.backgroundColor = ‘black‘;
					document.body.style.textAlign = ‘center‘;
					document.body.appendChild(LScroll.sc = sc);
					LScroll.draw(LScroll.sc, LScroll.scx);
				};
				LScroll.loadImg(srcs, callback);
			}
		},
		draw : function(sc, scx) {
			scx.clearRect(0, 0, sc.width, sc.height);
			scx.save();
			scx.beginPath();

			switch (LScroll.flag) {
			case true:
				if (-LScroll.at == LScroll.img.width - sc.width)
					LScroll.flag = !LScroll.flag;
				LScroll.at--;
				break;
			case false:
				if (LScroll.at == 0)
					LScroll.flag = !LScroll.flag;
				LScroll.at++;
			}

			scx.drawImage(LScroll.img, LScroll.at, 0);
			scx.restore();
			setTimeout(function() {
				LScroll.draw(sc, scx);
			}, 10);
		}
	};
	window.onload = function() {
		LScroll.init(‘road-map.png‘);
	};
</script>
</head>
<body>

</body>
</html>

图片是运行的效果。

时间: 2024-11-08 13:37:38

Html5 Canvas 实现滚动的图片的相关文章

8个经典炫酷的HTML5 Canvas动画欣赏

HTML5非常强大,尤其是Canvas技术的应用,让HTML5几乎可以完成所有Flash能完成的效果.本文精选了8个经典炫酷的HTML5 Canvas动画欣赏,每一个都提供全部的源代码,希望对你有所帮助. 1.HTML5 Canvas可拖动的弹性大树摇摆动画 今天让我们继续来分享一个炫酷的HTML5动画,它是一款基于HTML5 Canvas的大树摇摆动画,这款HTML5动画的特点是我们可以拖拽树枝,从而让整棵树摇摆起来,这样就真实地模拟了大树从摇摆到静止的整个过程,相当逼真. 在线演示     

HTML5 程序设计 - 使用HTML5 Canvas API

请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方便查看. 学习笔记,纯手工码字,有错别字什么的请指出,觉得好的请点个赞小小的支持下.谢谢亲们. 本篇,我们将探索如何使用HTML5和Canvas API.Canvas API很酷,可以通过它来动态生成和展示图形.图表.图像以及动画. 本篇将使用渲染API(Rendering API)的基本功能来创建

html5 canvas实现图片玻璃碎片特效

今天要为大家带来一款html5 canvas实现的图片玻璃碎片特效.图片以玻璃碎片的形式出现到界面中,然后似玻璃被打碎的效果渐消息.效果图如下: 在线预览   源码下载 实现代码: html代码: <img src="city_copy.jpg" id="src_img" class="hidden"> <div id="container" style="-webkit-perspective:

基于HTML5 Canvas实现的图片马赛克模糊特效

效果请点击下面网址: http://hovertree.com/texiao/html5/1.htm 一.开门见山受美国肖像画家Chuck Close的启发,此脚本通过使用HTML5 canvas元素把图像转换成像素形式,这基本上是一个为canvas imageData功能的简单演示. 此脚本现存于GitHub上,您可以在那里下载到脚本和示例.在GitHub上查看像素化资源 二.选项此方法接受一个对象数组,每个对象都拥有一组选项.resolution : 渲染像素间的像素距离,必须的.shape

html5 canvas+原生javascript 实时获取文本框内容绘制图片水印

最近有位客户要求在网页图片上加文字水印效果,并且内容是从当前网页的文本输入框实时获取的,研究了一半天,在网上也参考了不少朋友的办法,再加上园子里热心的好哥们帮助终于实现了,先看下效果图: 代码如下: 1 <!DOCTYPE html> 2 <head> 3 <meta charset="UTF-8"> 4 <title>drawing by input text</title> 5 </head> 6 7 <

将HTML5 Canvas的内容保存为图片借助toDataURL实现

将HTML5 Canvas的内容保存为图片主要思想是借助Canvas自己的API - toDataURL()来实现,具体实现如下,感兴趣的朋友可以参考下哈,希望对你有所帮助 主要思想是借助Canvas自己的API - toDataURL()来实现,整个实现 HTML + JavaScript的代码很简单.  <html>  <meta http-equiv="X-UA-Compatible" content="chrome=1">  <

HTML5 Canvas实现的图片马赛克模糊特效

要想让图片像素化,首先调用如下脚本:<script type="text/javascript" src="http://hovertree.com/texiao/html5/1/js/close-pixelate.js"></script>然后调用方法closePixelate,更具体的是:图片dom.closePixelate(选项参数) 此脚本可以应用于各类图片.根据HTML5规范,浏览器禁止任何外部托管图片上使用getImageDat

HTML5 canvas图片爆炸特效

这是一款基于html5 canvas的炫酷图片爆炸飞散特效js插件.该js插件当用鼠标点击图片时,图片会有玻璃窗被子弹击碎时的爆炸飞散效果,非常炫酷. 在线演示:http://www.htmleaf.com/Demo/201502151384.html 下载地址:http://www.htmleaf.com/html5/html5-canvas/201502151383.html

[js高手之路] html5 canvas系列教程 - 图片操作(drawImage,clip,createPattern)

接着上文[js高手之路] html5 canvas系列教程 - 文本样式(strokeText,fillText,measureText,textAlign,textBaseline)继续,本文介绍的内容是canvas开发,特别是游戏中,比较常用的内容:图片处理.在游戏中的资源大多数都是加载图片. 一.canvas怎么加载图片? canvas提供3种图片加载的API调用方式. drawImage( image, dx, dy ) drawImage( image, dx, dy, dw, dh