2013-12-10 8 views
12

की पृष्ठभूमि भरने, स्ट्रोक और अस्पष्टता सेट करें, मैं myCanvas की शैलियों को सेट करने के लिए नीचे दिए गए कोड का उपयोग करता हूं, लेकिन मैं fillStyle सेट करने में सक्षम नहीं हूं। फिर भी, strokeStyle और lineWidth ठीक काम कर रहा है। क्या कोई इस से मदद कर सकता है?एचटीएमएल 5 कैनवास

Init() 
{ 
    var can = byId('myCanvas'); 

     // get it's context 
     hdc = can.getContext('2d'); 

     hdc.strokeStyle = 'red'; 
     hdc.lineWidth = 2; 

     // Fill the path 
     hdc.fillStyle = "#9ea7b8"; 
     hdc.opacity = 0.2; 
     hdc.fill(); 
} 

// And call the drawPoly function with coordinates. 
function drawPoly(coOrdStr) { 
     var canvas = byId('myCanvas'); 
     hdc.clearRect(0, 0, canvas.width, canvas.height); 

     var mCoords = coOrdStr.split(','); 
     var i, n; 
     n = mCoords.length; 
     hdc.beginPath(); 
     hdc.moveTo(mCoords[0], mCoords[1]); 
     for (i = 2; i < n; i += 2) { 
      hdc.lineTo(mCoords[i], mCoords[i + 1]); 
     } 
     hdc.lineTo(mCoords[0], mCoords[1]); 
     hdc.stroke(); 

    } 

उत्तर

18
Init() 
{ 
    var can = document.getElementById('myCanvas'); 
    h = parseInt(document.getElementById("myCanvas").getAttribute("height")); 
    w=parseInt(document.getElementById("myCanvas").getAttribute("width")); 

    // get it's context 
    hdc = can.getContext('2d'); 

    hdc.strokeStyle = 'red'; 
    hdc.lineWidth = 2; 

    // Fill the path 
    hdc.fillStyle = "#9ea7b8"; 
    hdc.fillRect(0,0,w,h); 
    can.style.opacity = '0.2'; 
} 

सावधान कि style.height या style.width कैनवास के साथ काम नहीं करेंगे।

12

शैली/सीएसएस:

<style>#myCanvas { background-color: rgba(158, 167, 184, 0.2); }</style> 

jQuery:

$('#myCanvas').css('background-color', 'rgba(158, 167, 184, 0.2)'); 

जावास्क्रिप्ट:

document.getElementById("myCanvas").style.backgroundColor = 'rgba(158, 167, 184, 0.2)'; 
+8

सीएसएस जोड़ने के लिए jQuery का उपयोग क्यों करें? –

+0

क्योंकि कैनवास के साथ काम करते समय आमतौर पर कोड के साथ उपस्थिति को बदलने में सक्षम होने का लाभ होता है। हालांकि आप सही हैं, सादे सीएसएस के साथ ऐसा करना पूरी तरह से संभव है। – forsvunnet

+4

या सादे जावास्क्रिप्ट के साथ ... – aloisdg

2

वास्तव में, style.height और style.width कैनवास के साथ काम करते हैं, आप भी भीतरी संकल्प बदल रहा है, उदा बिना एक अलग आकार के लिए उन सेट कर सकते हैं एक पूर्णस्क्रीन 1024x768 कैनवास में 400x300 गेम चला रहा है।

+1

यदि कैनवास तत्व गुणों के बजाय कैनवास शैली गुणों का उपयोग करना सुनिश्चित करें कि आप चौड़ाई और ऊंचाई को आनुपातिक रूप से बदलते हैं या अन्यथा कैनवास पर कोई भी चित्र क्षैतिज या लंबवत विकृत हो जाएगा। ;-) – markE

+0

ठीक है, कभी-कभी यह वही है जो आप चाहते हैं। :) –

संबंधित मुद्दे