shadowOffsetX 属性和 shadowOffsetY 属性分别用于设置阴影在 X 轴和 Y 轴的延伸间隔,属性值为正值表示向下或向右延伸,负值表示向上或向左延伸。
shadowBlur 属性用于设置阴影的模糊度,当我们不肯望图形的阴影太清晰时,可以利用这个属性。属性值为必须为正值,否则无效哟,一样平常设定在 0到10 之间。
shadowColor 属性值用于设置阴影的颜色,属性值可以为任意标准的 CSS 颜色值,默认颜色为玄色。
给图形绘制阴影
例如给一个粉色的矩形绘制阴影。
示例:
绘制向右偏移 10 像素的阴影:
<!DOCTYPE html> <html> <head> <meta charset=34;utf-8"> <title>HTML5学习(9xkd.com)</title> </head> <body> <canvas id="mycanvas" width="300" height="200" style="border: 1px solid #000;"></canvas> <script> var can = document.getElementById("mycanvas"); var ctx = can.getContext("2d"); ctx.shadowOffsetX = 10; ctx.shadowBlur = 10; ctx.shadowColor="#000"; ctx.fillStyle = "pink"; // 添补颜色 ctx.fillRect(50, 50, 150, 70); </script> </body> </html>
在浏览器中的演示效果:
可以看到上图中,阴影的位置向右偏移,如果想要阴影向左偏移,可以将shadowOffsetX 的值设置为负数。
示例:
如果要绘制向上偏移 20 像素的阴影,则不须要设置 shadowOffsetX,而是设置 shadowOffsetY 属性,正值为向下偏移,负值为向上偏移:
var can = document.getElementById("mycanvas");var ctx = can.getContext("2d");ctx.shadowOffsetY = -20;ctx.shadowBlur = 10;ctx.shadowColor="rgba(0, 0, 0, 0.7)"; // 设置透明度ctx.fillStyle = "pink"; // 添补颜色ctx.fillRect(50, 50, 150, 70);
在浏览器中的演示效果:
可以看到这张截图中,矩形的阴影颜色要比上面示例中淡一点。这是由于我们在给阴影设置颜色时,指定了一个透明度,用到了 rgba() 函数,函数中第四个参数用于设置透明度,值为 0~1 之间的小数,0表示完备透明,1表示不透明。
示例:
给四个边设置阴影:
var can = document.getElementById("mycanvas");var ctx = can.getContext("2d");ctx.shadowBlur = 10;ctx.shadowColor="rgba(0, 0, 0, 0.7)"; // 设置透明度ctx.fillStyle = "pink"; // 添补颜色ctx.fillRect(50, 50, 150, 70);
在浏览器中的演示效果:
在实际运用中,实在我们会常常用到阴影,例如给导航栏添加阴影、给按钮添加阴影、给图片添加阴影等,这样看上去就会更立体一些,增加层次感。
理解更多可查看链接:https://www.9xkd.com/