Html5使Canvas适应不同设备

Posted zhangjk1993

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Html5使Canvas适应不同设备相关的知识,希望对你有一定的参考价值。

1. viewport

首先我们要在网页中加入viewport,如下。其中user-scalable=0表示禁止用户缩放大小
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1,user-scalable=0">

2.判断手机还是电脑访问

使用下面代码判断是否电脑访问,其中any判断任意类型的手机,调用方式为isMobile.any()
var isMobile = 
        android: function () 
            return navigator.userAgent.match(/Android/i);
        ,
        BlackBerry: function () 
            return navigator.userAgent.match(/BlackBerry/i);
        ,
        ios: function () 
            return navigator.userAgent.match(/iPhone|iPad|iPod/i);
        ,
        Opera: function () 
            return navigator.userAgent.match(/Opera Mini/i);
        ,
        Windows: function () 
            return navigator.userAgent.match(/IEMobile/i);
        ,
        any: function () 
            return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
        
    ;

3.设置canvas的尺寸

下面的代码用来手机和电脑访问时canvas分别对应的大小
 var isPhone = isMobile.any();
        if (isPhone) 
            //如果是手机访问,将canvas大小设为网页可见的大小,乘以0.96是为了四边留些空隙
            canv.width = parseInt(window.innerWidth * 0.96);
            canv.height = parseInt(window.innerHeight * 0.96);
         else 
            canv.width = 300;
            canv.height = 500;
        

完整代码地址: https://github.com/zhangjikai/CodeTemplate/blob/master/html5/FixCanvasSizeOnDevice.html 演示地址: http://zhangjikai.com/demo/html/FixCanvasSizeOnDevice.html
以此为基础的写的小游戏地址: http://zhangjikai.com/game/coverit/index.html

以上是关于Html5使Canvas适应不同设备的主要内容,如果未能解决你的问题,请参考以下文章

如何使 Canvas 适应不同的手机分辨率? Unity3d

如何适应不同的屏幕尺寸

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

ThreeJS canvas画布自适应的原理

HTML5 file API加canvas实现图片前端JS压缩并上传

使用 CSS 使 GIF 大小适应浏览器窗口尺寸