|
|
1
3
不需要2个画布元素。下面的代码可以工作。在Linux上的Firefox 3.0上测试了它。 我改变了画布的大小,以便在测试时更好地看到它,我制作了画布200 x 100像素。您需要根据需要调整大小(75x20)。为了测试的目的,我做了100x100像素的覆盖,这样我可以看到一半的图像有一个梯度。
编辑以解释其中一些: 我认为你基本上忽略了梯度上的alpha属性。
第四个参数是alpha。此外,由于将画布上下颠倒,渐变当前是上下颠倒绘制的(因此第二个颜色停止点具有透明度,而块在顶部是透明的)。 如果你想正确地做事,你需要:
现在可以根据需要绘制透明渐变块。 另外,对于我来说,ctx.fillrect()命令不起作用。我必须使用ctx.rect()和ctx.fill()。 希望这有帮助。 |
|
|
2
2
|
|
|
3
1
创建反射时不需要重新绘制整个图像。原始反射只显示图像的底部。 这样,您就可以重新绘制图像的较小部分,从而提供更好的性能,而且不需要创建线性渐变来隐藏图像的较低部分(因为您从未绘制过)。 您可以使用“反射高度”和“不透明度”来播放以获得所需的结果。
这里有一个链接指向 fiddle |
|
|
4
0
使用第二个画布并不能提供非常令人信服的渐变叠加。为了获得良好的效果,可能需要使用渐变png。
|