2016-04-03 26 views
0

私はキャンバスに様々な形や文字を描いていますが、ブラウザには何も表示されていません。 Chromeのコンソールにエラーはありません。私はそれを別のブラウザで開いて、キャッシュに問題があったかもしれないと思っていましたが、「キャンバスを描く」ボタン以外は何も表示されません。ここではjsfiddleである:https://jsfiddle.net/0Lakv2do/私の絵がキャンバスに表示されないのはなぜですか?

 <!DOCTYPE html> 
<html lang="en"> 
<head> 


    <meta charset="UTF-8"> 
     <title></title> 
     <style type="text/css"> 
      #content-wrapper { 
       width: 600px; 
       margin: 0 auto; 
       text-align: center; 
      } 
      #canvasRun { 
       background-color: #c00; 
       border: 0; 
       color: #fff; 
      } 

     </style> 

</head> 
<body> 
    <div id="content-wrapper"> 
     <button id="canvasRun">Draw Canvas</button><br><br> 
     <canvas id="myCanvas" width="600" height="450"></canvas> 
    </div> 
    <script type="text/javascript"> 

     var contentWrapper = document.getElementById('contentWrapper'); 
     var runButton = document.getElementById('canvasRun'); 
     var canvas = document.getElementById('myCanvas'); 
     myCanvas.style.visibility="hidden"; 

     runButton.addEventListener('click', showCanvas, false); 

     function showCanvas() { 

      myCanvas.style.visibility = "visible"; 
      if (myCanvas.getContext){ 

      var logo = new Image(); 
      logo.src = 'IIT_SAT_stack_186_white.png'; 

      function renderMyCanvas() { 
       var ctx = canvas.getContext('2d'); 


       var linearGrad = ctx.createLinearGradient(0,0,0,450); 

       linearGrad.addColorStop(0, 'white'); 
       linearGrad.addColorStop(1, 'black'); 

       ctx.fillStyle=linearGrad; 
       ctx.fillRect(0,20,600,450); 

       ctx.font = "32px sans-serif"; 
       ctx.fillStyle = 'red'; 
       ctx.fillText("ITMD 565 Canvas Lab", 135, 75); 

       ctx.beginPath(); 
       ctx.moveTo(15, 90); 
       ctx.lineTo(580, 90); 
       ctx.lineWidth = 3; 
       ctx.strokeStyle = 'red'; 
       ctx.closePath(); 
       ctx.stroke(); 

       ctx.font = "14px sans-serif"; 
       ctx.fillStyle = 'white'; 
       ctx.fillText("", 15, 410); 
       ctx.fillText("", 15, 430); 

       ctx.drawImage(logo, 300, 360, 250, 60); 

       ctx.fillStyle= 'white'; 
       ctx.fillRect(250, 250, 310, 100); 

        var x = canvas.width/2; 
        var y = canvas.height/2; 
        var radius = 75; 
        var startAngle = 1.1 * Math.PI; 
        var endAngle = 1.9 * Math.PI; 
        var counterClockwise = false; 

        ctx.beginPath(); 
        ctx.arc(x, y, radius, startAngle, endAngle, counterClockwise); 
        ctx.lineWidth = 15; 

        ctx.arc.strokeStyle = 'yellow'; 
       ctx.stroke(); 

       ctx.setLineDash([10, 10]); 
       ctx.beginPath(); 
       ctx.moveTo(270,300); 
       ctx.quadraticCurveTo(330, 220, 395, 300, 395, 300); 
       ctx.strokeStyle = 'black'; 
       ctx.stroke(); 

       ctx.beginPath(); 
       ctx.moveTo(395, 300); 
       ctx.quadraticCurveTo(450, 375, 540, 300); 
       ctx.strokeStyle = 'black'; 
       ctx.stroke(); 

      } 

     } 

     } 

    </script> 
</body> 
</html> 
+0

どこでも 'renderMyCancas'への呼び出しがありません –

答えて

0

あなただけの貼り付け/あなたの他の関数の内部機能をコピーしているとあなたはそれを呼び出すことはありません。別の変数canvasもありますが、外側にはmyCanvasがあります。

コピー/ペーストするときに、実際にコピーする内容とその動作を実際に確認してください。

Fiddleを参照してください。関数定義は削除され、変数名は固定されています。

+0

実際には、キャンバスのIDであり、変数'canvas 'がdocument.getElementById(" myCanvas ")を参照しているので、両方の変数が同じものを参照していますDOMオブジェクト。 – Kaiido

+0

@Kalidoああ、これらの2つの変数名をさらに混用しているようです。とにかく主要な問題は関数の定義です。 –

+0

@Sam Kuhomen、ありがとう。 – Grafics

関連する問題