canvas如何设置阴影?
我们知道可以用css来实现阴影效果,但是html5中canvas也可以用来设置阴影效果,所以,接下来的这篇文章将给大家来介绍关于如何用canvas来设置阴影效果,话不多说,直接来看内容。
首先要知道在canvas中进行绘制时,不管是文本、图形、还是图像,也不管是描边还是填充,都可以通过设置上下文对象的相关属性,来为它们设置阴影。
canvas创建阴影效果需要使用以下四个属性:
shadowColor:阴影的颜色,其默认值为完全透明的黑色。因此,如果没有把该属性设置为不透明,则阴影是不可见的。该属性只能设置为一个表示颜色的字符串,不能使用渐变或图案。使用半透明的阴影可以产生很逼真的阴影效果,因为透过阴影还能看到背景。
shadowOffsetX:阴影在X轴的偏移量,单位为像素。默认值为0,阴影位于图形正下方,阴影是不可见的。大于0向右偏移,小于0向左偏移。阴影偏移量越大,产生的阴影也越大,同时会感觉绘制的图形在画布是浮得也越高。
shadowOffsetY:阴影在Y轴的偏移量,单位为像素。默认值为0,阴影位于图形正下方,阴影是不可见的。大于0向下偏移,小于0向上偏移。阴影偏移量越大,产生的阴影也越大,同时会感觉绘制的图形在画布是浮得也越高。
shadowBlur:阴影的模糊值。是一个与像素无关的值,被用于高斯模糊方程中,以便对阴影进行模糊化处理。默认值为0,表示产生一个清晰的阴影。该值越大,表示阴影越模糊。
说明:根据canvas规范,只有在满足以下两个条件时,浏览器才会绘制阴影:
1、指定了一个非全透明的shadowColor属性值;
2、shadowOffsetX、shadowOffsetY、shadowBlur三个属性中,至少有一个属性的值不是0。
下面我们就来看看canvas实现的阴影效果实例代码:
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>Canvas</title> </head> <style type="text/css"> body{margin:20px auto; padding:0; width:800px; } canvas{border:dashed 2px #CCC} </style> <script type="text/javascript"> function $$(id){ return document.getElementById(id); } function pageLoad(){ var can = $$('can'); var cans = can.getContext('2d'); cans.fillStyle = 'green'; cans.shadowOffsetX = 5; cans.shadowOffsetY = 5; cans.shadowColor = '#333'; cans.shadowBlur = 10; cans.fillRect(200,300,400,200); } </script><body onload="pageLoad();"> <canvas id="can" width="800px" height="600px"></canvas></body></html>
canvas设置阴影效果如下:
本篇文章到这里就结束了,关于canvas元素的更多用法可以参考html5开发手册。