HTML5 Canvas - 模式和阴影



创建模式

在画布上创建模式需要以下方法:

序号 方法和描述
1

createPattern(image, repetition)

此方法将使用图像来创建模式。第二个参数可以是包含以下值之一的字符串:repeat、repeat-x、repeaty 和 no-repeat。如果指定空字符串或 null,则将假定为 repeat

示例

以下是一个简单的示例,它使用上面提到的方法来创建一个漂亮的模式。

<!DOCTYPE HTML>

<html>
   <head>
      
      <style>
         #test {
            width:100px;
            height:100px;
            margin: 0px auto;
         }
      </style>
      
      <script type = "text/javascript">
         function drawShape() {
            
            // get the canvas element using the DOM
            var canvas = document.getElementById('mycanvas');
            
            // Make sure we don't execute when canvas isn't supported
            if (canvas.getContext) {
            
               // use getContext to use the canvas for drawing
               var ctx = canvas.getContext('2d');
               
               // create new image object to use as pattern
               var img = new Image();
               
               img.src = 'images/pattern.jpg';
               img.onload = function() {
                  
                  // create pattern
                  var ptrn = ctx.createPattern(img,'repeat');
                  ctx.fillStyle = ptrn;
                  ctx.fillRect(0,0,150,150);
               }
            } else {
               alert('You need Safari or Firefox 1.5+ to see this demo.');
            }
         }
      </script>
   </head>
    
   <body id = "test" onload = "drawShape();">
      <canvas id = "mycanvas"></canvas>
   </body>
   
</html>

假设我们有以下模式 images/pattern.jpg

Pattern

以上示例将绘制以下结果:

创建阴影

HTML5 canvas 提供了在图形周围创建漂亮阴影的功能。所有绘图操作都受四个全局阴影属性的影响。

序号 属性和描述
1

shadowColor [ = value ]

此属性返回当前阴影颜色,并且可以设置,以更改阴影颜色。

2

shadowOffsetX [ = value ]

此属性返回当前阴影偏移 X,并且可以设置,以更改阴影偏移 X。

3

shadowOffsetY [ = value ]

此属性返回当前阴影偏移 Y,并且可以设置,以更改阴影偏移 Y。

4

shadowBlur [ = value ]

此属性返回应用于阴影的当前模糊级别,并且可以设置,以更改模糊级别。

示例

以下是一个简单的示例,它使用上面提到的属性来绘制阴影。

<!DOCTYPE HTML>

<html>
   <head>
      
      <style>
         #test {
            width: 100px;
            height:100px;
            margin: 0px auto;
         }
      </style>
      
      <script type = "text/javascript">
         function drawShape() {
            
            // get the canvas element using the DOM
            var canvas = document.getElementById('mycanvas');
            
            // Make sure we don't execute when canvas isn't supported
            if (canvas.getContext) {
            
               // use getContext to use the canvas for drawing
               var ctx = canvas.getContext('2d');
               
               ctx.shadowOffsetX = 2;   
               ctx.shadowOffsetY = 2;   
               
               ctx.shadowBlur = 2;   
               ctx.shadowColor = "rgba(0, 0, 0, 0.5)";
               
               ctx.font = "20px Times New Roman";
               ctx.fillStyle = "Black";
               
               ctx.fillText("This is shadow test", 5, 30);
            } else {
               alert('You need Safari or Firefox 1.5+ to see this demo.');
            }
         }
      </script>
   </head>
   
   <body id = "test" onload = "drawShape();">
      <canvas id = "mycanvas"></canvas>
   </body>
</html>

以上示例将产生以下结果:

html5_canvas.htm
广告