【第1章 基础知识】1.10 离屏 canvas


前言

Canvas 技术的另一项重要功能就是可以创建并操作离屏 canvas。举例来说,在大多数情况下,都可以把背景存储在一个或多个离屏 canvas 之中,并将这些离屏 canvas 中的某一部分复制到屏幕上,以此来大幅提高应用程序的性能。

离屏 canvas 的另一个用途就是制作我们在上一节提到的那个时钟程序。那个应用程序向你展示了一种通用的解决方案,它需要用户通过交互界面将程序的显示方式从 canvas 切换为图像。不过,像时钟这样的应用程序,最好还是能在不需要用户干预的情况下,于幕后完成显示模式的切换。


更新后的时钟

更新后的时钟每秒钟都会将时钟绘制到离屏 canvas 之中,然后将该 canvas 的数据地址设置为 img 的 src 属性值,于是就形成了一副反映离屏 canvas 内容变化的动画图像。

在这里插入图片描述

关键代码

请注意 HTML 代码中 canvas 元素的 CSS 设定:canvas是不可见的,因为其 display 属性被设置为 none 了。这样的话,这个不可见的 canvas 就变成一个离屏 canvas。实际开发中离屏 canvas 不是这样设置的。

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>1-4-一个基本的时钟程序</title>
		<style>
			body {
				background: #ddd;
			}
			#canvas {
				display: none;
			}
			#snapshotImageElement {
				position: absolute;
				left: 10px;
				margin: 20px;
				border: thin solid #aaa;
			}
		</style>
	</head>

	<script>
		function updateClockImage() {
			snapshotImageElement.src = cavans.toDataURL()
		}
	</script>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值