html5 Canvas 如何自适应屏幕大小

 我来答
匿名用户
推荐于2018-02-26
展开全部
只有内嵌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前设置他的大小
估计是没分了,给后人看吧
jack观天下
推荐于2018-03-13 · 带你看天下趣闻,有意思的视频!
jack观天下
采纳数:832 获赞数:3143

向TA提问 私信TA
展开全部

可以用JS监控屏幕大小,然后调整Canvas的大小。在代码中加入JS

$(window).resize(resizeCanvas);
 function resizeCanvas() {
        canvas.attr("width", $(window).get(0).innerWidth);
        canvas.attr("height", $(window).get(0).innerHeight);
        context.fillRect(0, 0, canvas.width(), canvas.height());
 };
 resizeCanvas();

就可以了。


<canvas> 标签只是图形容器,您必须使用脚本来绘制图形。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
694196619
2018-06-19 · TA获得超过226个赞
知道答主
回答量:90
采纳率:0%
帮助的人:61.8万
展开全部
<canvas id="canvas" style="background-color: #000022;position:absolute;top:0;left:0;"></canvas>
<script>
    var canvas = document.getElementById("canvas");//获取canvas
    function resizeCanvas(canvasElement){
        canvasElement.width = window.innerWidth;
        canvasElement.height = window.innerHeight;
    }//这个函数会吧canvas元素的大小变成和浏览器窗口一样大
    //添加监听改变窗口大小的事件
    window.onresize = function(){
        resizeCanvas(canvas);
    }
    //    需要注意的是改变canvas元素的长宽会清除该canvas
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
想跑的淋巴细胞
2019-12-23
知道答主
回答量:8
采纳率:0%
帮助的人:2.1万
展开全部
css样式设置width:100%;height:100%;然后用下面四种方法皆可:
1.
canvas.width = document.documentElement.clientWidth;
canvas.height = document.documentElement.clientHeight;
2.
canvas.width = screen.availWidth;
canvas.height = screen.availHeight;
3.
canvas.width = screen.width;
canvas.height = screen.height;
4.
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式