html5 Canvas 如何自适应屏幕大小?

html5 Canvas 如何自适应屏幕大小?,第1张

用JS调制屏幕大小

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

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

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

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

5.代码公式:<!DOCTYPE html><html><head><meta charset="utf-8"><title></title><script src="jquery-3.1.1.js"></script><style>* {margin: 0padding: 0}html, body {height: 100%width: 100%}canvas {display: blockbackground: #D6F8FF}</style><script type="text/javascript">$(function() {//添加窗口尺寸改变响应监听$(window).resize(resizeCanvas)//页面加载后先设置一下canvas大小resizeCanvas()})//canvasfunctionresizeCanvas{$("#myCanvas").attr("width"$(window).get(0).innerWidth)$("#myCanvas").atr("height", $(window).get(0).innerHeight)}</script></head<body<canvas id="myCanvas" width="400" height="200"></body>。

</html>

只有内嵌css有效,外部css会出现拉伸的情况,

所以有两种方案

var myCanvas = "<canvas id='myCanvas' width='" + screen.availWidth + "px' height='"+ screen.availHeight + "px'></vanvas>"

document.body.insertAdjacentHTML("beforeEnd", myCanvas)

或者这种做法

var myCanvas = document.createElement("canvas")

myCanvas.setAttribute("width", screen.availWidth)

myCanvas.setAttribute("height", screen.availHeight)

myCanvas.setAttribute("id", "myCanvas")

document.body.appendChild(myCanvas)

两种方案的共性都是在把元素添加进DOM前设置他的大小

估计是没分了,给后人看吧

在css中定义一个控制embed的div样式, 自适应可以利用的浮动元素的尺寸可以通过margin来调整,然后让body的高度要设为100%,这样内部的div的高度设为100%才有效,宽度嘛不用管他,div默认就是自适应宽度的。东莞汇鑫


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6206232.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存