HTML5 responsive canvas: resizing the browser canvas draw disappear

后端 未结 7 1681
一向
一向 2020-12-03 02:29

I want to make a responsive canvas using size in percentage and once user will resize the window the canvas adjust relatively. I am able to scale the canvas by using below c

7条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-03 02:39

    I use this method:

    var context = document.getElementById('paint').getContext('2d');
    var canvas = context.canvas;
    
    function responsive(width){
        var p = width / canvas.width;
        canvas.width *= p;
        canvas.height *= p;
    
        var scaleFactor = context.scaleFactor || 1;
        context.scale(p * scaleFactor, p * scaleFactor);
        context.scaleFactor = p * scaleFactor;
    }
    
    var mq = window.matchMedia("(min-width: 735px)");
    mq.addListener(applyChanges);
    applyChanges();
    
    function applyChanges(){
        if(!mq)
            responsive(350);
        else
            responsive(735);
    }
    

提交回复
热议问题