【发布时间】:2013-07-09 18:58:47
【问题描述】:
我知道我可以通过使用getContext('2d') 创建路径并设置globalCompositeOperation 来剪辑画布。
我注意到,有时我可以在其他浏览器(我使用的是 Chrome)上使用 -webkit-clip-path 或 clip-path 剪辑画布,但有时我无法:
使用此 HTML:
<canvas width="300" height="60"></canvas>
和 CSS:
canvas {
-webkit-clip-path: polygon(50% 33%, 75% 10%, 80% 80%, 60% 75%, 40% 60%, 20% 10%, 40% 20%, 50% 33%);
}
产生这个:
这似乎是正确的。
但是,我注意到,如果我改变画布的高度,它就无法剪辑:
<canvas width="300" height="250"></canvas>
产生:
我的假设 是,它在浮点上裁剪(百分比在像素之间而不是像素上裁剪)有问题,但是从百分比更改为像素坐标不会裁剪。
*这里分别是他们的jsfiddle页面的链接:
有谁知道为什么一个有效而另一个无效?
是否有一种稳定 的方式来使用 CSS 剪辑画布元素,或者我是否需要使用画布上下文方法?
我问的原因是我想尽可能少用js。我有一串坐标,可以很容易地放入 css;而要使用 ctx.beginPath()...ctx.moveTo()...ctx.lineTo()...ctx.lineTo()... 方法,我需要对这些点执行 for 循环。
另外,我很好奇为什么第一个示例有效,如果有人可以解释的话。谢谢! :)
【问题讨论】:
标签: javascript css html canvas webkit