2012-03-04 76 views
2

是否有可能讓說,在畫布上放大,每一個5×5塊實際上是最終圖像的1個像素,你怎麼了「畫」與彩色存儲在一個變量的onclick像素?我測試過的任何代碼最終都是筆畫,由於某種原因,點擊沒有任何作用。繪製單個像素W /帆布

回答

3

像這樣的東西?

<canvas id="canvas" style="width:100px; height:100px" width="5" height="5"></canvas> 

<script> 

    var canvas = document.getElementById("canvas"); 

    var context = canvas.getContext("2d"); 

    //Background 
    context.fillStyle = "#000"; 
    context.fillRect(0, 0, canvas.width, canvas.height); 



    canvas.addEventListener("click", function(e) { 

     var x = Math.floor(e.x * canvas.width/parseInt(canvas.style.width)); 
     var y = Math.floor(e.y * canvas.height/parseInt(canvas.style.height)); 


     //Zoomed in red 'square' 
     context.fillStyle = "#F00"; 
     context.fillRect(x, y, 1, 1); 

    }, true); 

</script> 

編輯:新增點擊功能

演示:http://jsfiddle.net/Cmpde/

+0

對於一些奇怪的原因,這不會對FF10工作,但在IE。 – jmoon 2012-03-04 22:11:39

+0

有什麼辦法可以完全禁用抗鋸齒功能嗎? – jmoon 2012-03-04 22:11:46

+0

@jmoon不知道(實際上我不認爲你可以),但是你可以製作一個寬度/高度較大的畫布(如按比例),並繪製20x20的正方形。至於爲什麼id不起作用,它可能與我獲得鼠標座標(MouseEvent.x)有關。 – 2012-03-04 22:14:00