2013-05-19 4 views
0

Когда я изменяю размер холста HTML5 и рисую следующий текст, соотношение сторон текста искажается. Я не ожидаю такого поведения. Что я делаю не так?поведение холста html5 при изменении размера холста

<!DOCTYPE HTML> 
<html> 
    <script src="jquery-ui/js/jquery-1.9.1.js"></script>  
    <style> canvas{border:1px solid green} </style> 

    <body> 
    <canvas id="myCanvas" width="300" height="200"></canvas>  

    <script>  
    var canvas = document.getElementById('myCanvas'); 
    var context = canvas.getContext('2d'); 
    var height=200; 

    var myVar=setInterval(function(){repeat()},1000); 

    function repeat(){  
     $('#myCanvas').css("height",height+=50); 
     $('#myCanvas').css("width",300); 
     // var canvas = document.getElementById('myCanvas'); 
     // var context = canvas.getContext('2d'); 
     context.font = 'italic 40pt Calibri'; 
     context.fillText("Super test", 40, 100);   
    } 
    </script> 

enter image description here

+2

http://stackoverflow.com/questions/2588181/canvas-is-stretched-when-using-css- но-нормально-с-ширина-высота-свойств – Andreas

ответ

0

используя canvas.setAttribute('height', h); вместо $('#myCanvas').css("height",h); ...

<!DOCTYPE HTML> 
<html> 
    <script src="jquery-ui/js/jquery-1.9.1.js"></script>  
    <style> canvas{border:1px solid green} </style> 

    <body> 
    <canvas id="myCanvas" width="300" height="200"></canvas>  

    <script>  
    var canvas = document.getElementById('myCanvas'); 
    var context = canvas.getContext('2d'); 
    var height=200; 

    var myVar=setInterval(function(){repeat()},1000); 

    function repeat(){  
     canvas.setAttribute('height', height+=50); 

     context.font = 'italic 40pt Calibri'; 
     context.fillText("Super test", 40, 100);   
    } 
    </script> 
Смежные вопросы