3 回答

TA貢獻1828條經(jīng)驗 獲得超6個贊
用JS調(diào)制屏幕大小。
1.CSS 方面:去掉所有元素的外間距、內(nèi)邊距,html 和 body 寬高設(shè)為 100%,canvas 元素 display 設(shè)為 block。
2.JS 方面:監(jiān)聽窗口的 resize 事件,在窗口大小改變的同時調(diào)整 canvas 的大小。
3.完整代碼這里我們使用 jQuery 來處理窗口尺寸改變事件響應(yīng),以及屬性設(shè)置。
4.同時使用 $(window).get(0).innerHeight 獲取窗口高度,而不是 $(window).height()。是因為后者效果并不完美,無法返回所有瀏覽器窗口的完整高度值,這樣瀏覽器窗口中 canvas 元素和滾動條的四周可能會仍存在白色區(qū)域。
5.代碼公式:<!DOCTYPE html><html><head><meta charset="utf-8"><title></title><script src="jquery-3.1.1.js"></script><style>* {margin: 0;padding: 0;}html, body {height: 100%;width: 100%;}canvas {display: block;background: #D6F8FF;}</style><script type="text/javascript">$(function() {//添加窗口尺寸改變響應(yīng)監(jiān)聽$(window).resize(resizeCanvas);//頁面加載后先設(shè)置一下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>

TA貢獻1802條經(jīng)驗 獲得超5個贊
只有內(nèi)嵌css有效,外部css會出現(xiàn)拉伸的情況,
所以有兩種方案
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前設(shè)置他的大小
- 3 回答
- 0 關(guān)注
- 393 瀏覽
添加回答
舉報