- HOME
- JavaScript入門[HTML5編]
- 影を付ける
このページでは、画像や文字に影(シャドウ)を付ける方法について解説します。
影の設定
最初に影の設定をする方法を見ておきましょう。
- context.shadowColor = 色
- 影の色を指定します。
- context.shadowBlur = 数値
- 影のぼかし具合を指定します。数値が大きいほどぼかしが強くなります。
- context.shadowOffsetX = 数値
- 影の横方向のずれ具合を指定します。
- context.shadowOffsetY = 数値
- 影の縦方向のずれ具合を指定します。
上記の4種類の値を指定します。
文字にシャドウ効果を付ける
まずは文字に影を付けてみます。
<canvas id="cv1" width="360" height="240"></canvas>
<script>
var ctx = document.getElementById("cv1").getContext("2d");
ctx.font = "italic 64px Arial";
ctx.fillStyle = "green";
ctx.shadowColor = "red"; //赤色の影を付ける
ctx.shadowBlur = 0; //ぼかしを0にする
ctx.shadowOffsetX = 3; //横に3pxずらす
ctx.shadowOffsetY = 1; //縦に1pxずらす
ctx.fillText("JavaScript",10,140);
</script>
<描画結果>canvasタグにはCSSで二重線の枠を付けています
ぼかしを0にすると、サンプルのようにくっきりした影が付きます。
図形にシャドウ効果を付ける
続いて、図形に影を付けてみます。
<canvas id="cv2" width="360" height="240"></canvas>
<script>
var ctx = document.getElementById("cv2").getContext("2d");
ctx.fillStyle = "aqua";
ctx.shadowColor = "blue"; //青色の影を付ける
ctx.shadowBlur = 5; //ぼかしを5にする
ctx.shadowOffsetX = 10; //横に10pxずらす
ctx.shadowOffsetY = 10; //縦に10pxずらす
ctx.beginPath();
ctx.arc(180,120,80,0,Math.PI*2,true);
ctx.fill();
</script>
<描画結果>canvasタグにはCSSで二重線の枠を付けています
円の背後に影を付けてみました。
画像にシャドウ効果を付ける
最後は画像に影を付けてみます。
<head>
<script>
var img = new Image();
img.src = "img/dog.jpg";
</script>
</head>
<body onload="draw()">
<canvas id="cv3" width="360" height="240"></canvas>
<script>
function draw(){
var ctx = document.getElementById("cv3").getContext("2d");
ctx.shadowColor = "gray"; //灰色の影を付ける
ctx.shadowBlur = 10; //ぼかしを10にする
ctx.shadowOffsetX = 20; //横に20pxずらす
ctx.shadowOffsetY = 15; //縦に15pxずらす
ctx.drawImage(img,10,10,240,160);
}
</script>
<描画結果>canvasタグにはCSSで二重線の枠を付けています
写真の背後にぼやけた影ができ、少し浮いたような効果を出すことができました。