css - HTML5 Canvas 填充两种颜色

标签 css html canvas

我有一个要求用两种颜色填充一个形状 - 就像一个棋盘。

我见过一些 css 的渐变效果,但没有见过这样的例子。

这在 Html5 Canvas 中是否可行?

最佳答案

你当然可以。事实上,您可以用任何可重复的东西填充任意形状,甚至可以使用您在 Canvas 本身制作的形状!

这是一个任意形状的示例,其中填充了在 Canvas 上定义的“豌 pod ”:http://jsfiddle.net/NdUcv/

这是一个简单的棋盘图案:http://jsfiddle.net/NdUcv/2/

第二个使形状填充看起来像这样:

enter image description here

我通过制作 Canvas 然后绘制我想在其上重复的任何内容来创建该图案:

var pattern = document.createElement('canvas');
pattern.width = 40;
pattern.height = 40;
var pctx = pattern.getContext('2d');

// Two green rects make a checkered square: two green, two transparent (white)
pctx.fillStyle = "rgb(188, 222, 178)";
pctx.fillRect(0,0,20,20);
pctx.fillRect(20,20,20,20);

然后在我的普通 Canvas 上我可以做:

var pattern = ctx.createPattern(pattern, "repeat");
ctx.fillStyle = pattern;

并用该图案绘制填充任何东西。

当然它不一定是 Canvas 路径,您可以使用棋盘图像(或任何类型的图像)并使用 Canvas 图案填充形状。

关于css - HTML5 Canvas 填充两种颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9019220/

相关文章:

html - 垂直边框 100% 高度不起作用。为什么?

html - 浏览域时样式不起作用

javascript - 重叠元素上的指针事件

javascript - 原型(prototype)函数 .activate() 的 jQuery 等价物是什么

php - 如何使用简单的 dom html 从后台 url 返回链接?

html - 是否可以通过 JavaScript 获取网页的矩形部分作为图像?

jquery - 脚本仅在页面重新加载时工作

html - 如何在向下滚动页面上显示下拉菜单?

javascript - 在 Canvas 中播放部分视频

jquery - 如何围绕 Logo 创建三个元素的轨道