按月归档:2012年一月月

HTML5中的Canvas(线性渐变)

这一章讲解Canvas绘图中的线性渐变,不过呢,渐变的处理在各种浏览器中还略有不同,我们也会就这方面做一些说明。

什么是线性渐变

所谓线性渐变,是指从开始地点到结束地点,颜色呈直线的徐徐变化的效果。为了实现这种效果,我们绘制时必须制定开始和结束的颜色。而在Canvas中,不仅可以只指定开始和结尾的两点,中途的位置也能任意指定,所以可以实现各种奇妙的效果。

为了绘制线性渐变,我们需要使用createLinearGradient命令,这个命令可以获得一个CanvasGradient对象,使用这个对象的addColorStop方法添加颜色,就可以了。

整个的使用方法,首先是利用createLinearGradient方法指定渐变的首末位置得到CanvasGradient对象,再对这个对象使用addColorStop方法指定各个位置的颜色。最后,将CanvasGradient对象作为fillStyle使用。当然如果是希望框线使用渐变,就将其设置到strokeStyle上去。

纵方向的线性渐变

我们来看一个具体的例子:

画完以后是这个结果:
水平线性渐变代码中的各个定义也很清楚,因为(0, 0, 0, 140)指定了一条垂直的线,所以最终效果是垂直的进行渐变,这个效果在各种浏览器中应该都是一样的。我们以前说到过,画矩形有个简便的fillRect方法,这个方法是rect方法和fill方法的组合,非常方便。这里之所以没有采用,是因为貌似在低版本的Safari下有问题(无视渐变的fillStyle,只用默认的颜色),但在最新(现在是5.2)版本下尝试过没问题了,估计很早就修复了,也就放心用吧。
更多