canvas整体放大_HTML5 - 让Canvas大小自适应(自动撑满整个屏幕)

本文介绍了如何通过CSS和JavaScript使HTML5 Canvas元素充满整个浏览器窗口,并在窗口大小改变时动态调整其尺寸。关键在于设置CSS样式以消除间距,设置html和body的宽高为100%,并使用jQuery监听窗口resize事件,动态更新canvas的width和height属性为窗口的实际大小,确保无白色间隙。
摘要由CSDN通过智能技术生成

1,问题描述

我们知道使用 canvas元素可以创建出一个空白的画布。

效果如下:

但是这样创建的画布尺寸是一开始就设置好的,不能随着浏览器窗口大小的改变而动态改变。而 Canvas又无法直接将 width或 height属性设置为 100% 来自适应屏幕。

2,解决办法

如果我们想让画布撑满整个浏览器窗口。也就是说要当我们改变浏览器窗口大小时,画布也能随之改变,可以进行如下操作:

CSS 方面:去掉所有元素的外间距、内边距,html和 body宽高设为 100%,canvas 元素 display 设为 block

JS 方面:监听窗口的 resize事件,在窗口大小改变的同时调整 canvas的大小。

3,完整代码

这里我们使用 jQuery来处理窗口尺寸改变事件响应,以及属性设置。

同时使用 $(window).get(0).innerHeight获取窗口高度,而不是 $(window).height()。是因为后者效果并不完美,无法返回所有浏览器窗口的完整高度值,这样浏览器窗口中 canvas元素和滚动条的四周可能会仍存在白色区域。

* {

margin: 0;

padding: 0;

}

html, body {

height: 100%;

width: 100%;

}

canvas {

display: block;

background: #D6F8FF;

}

$(function() {

//添加窗口尺寸改变响应监听

$(window).resize(resizeCanvas);

//页面加载后先设置一下canvas大小

resizeCanvas();

});

//窗口尺寸改变响应(修改canvas大小)

function resizeCanvas() {

$("#myCanvas").attr("width", $(window).get(0).innerWidth);

$("#myCanvas").attr("height", $(window).get(0).innerHeight);

};

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值