我想在我的网页上放置一个红色矩形<div>
元素,这样它不仅可以看起来透明,而且还可以像在Photoshop的Multiply模式中混合一样。
<div>
会有position: fixed
,因此其下方的内容会很快发生变化。
这可能与任何HTML5 / CSS3 / canvas / SVG技巧有关吗?
答案 0 :(得分:27)
我创建了一个单独的,轻量级的开源库,用于从一个HTML Canvas上下文到另一个HTML Canvas上执行Photoshop样式的混合模式:context-blender。以下是示例用法:
// Might be an 'offscreen' canvas
var over = someCanvas.getContext('2d');
var under = anotherCanvas.getContext('2d');
over.blendOnto( under, 'screen', {destX:30,destY:15} );
有关详细信息,请参阅README,包括当前支持的混合模式。
您可以使用它来执行从一个画布到另一个画布的乘法,但不能通过标准HTML元素。
答案 1 :(得分:12)
答案 2 :(得分:7)
您还可以查看此演示:http://media.chikuyonok.ru/canvas-blending/,了解如何使用canvas进行此操作。
检查混合模式公式的来源以及如何应用它们(公式比pixastic或context-blender更具可读性。)
答案 3 :(得分:2)
这不是HTML5,但它与我所能找到的一样接近。
Javascript blending modes(OpenGL)。
我不认为像Photoshop这样的“混合模式”可以用纯HTML模拟,除非语言在另一个方向上急转弯。但是,看到一些更简单的方法可能会很棒。
答案 4 :(得分:2)
我也非常有兴趣这样做。我为视觉设计师编写的许多布局都可以使用它。除了这个帖子中的其他帖子之外,有一种方法可以做到这一点,目前仅在Firefox 4中,而不使用OpenGl或Canvas。它是通过使用SVG过滤器。很明显,这也是Webkit和Chrome的夜晚,但我看不到任何有效的东西。
以下是一些演示和解释:
恕我直言,任何接近混合模式的东西现在都难以实现。在feConvolveMatrix
,feSpecularLighting
或feColorMatrix
上找到任何引用都非常困难,这些示例对我来说是不可能的。他们可以工作,但我不知道如何。
div.sprite {
position: absolute;
z-index: 2;
composite: add;
}
这将是一种更好的方法。也许那些在数学中徘徊的忍者可能会让我们成为这样做的人。
编辑:有一个更简单的SVG规范来完成混合模式。但是我测试的浏览器没有这个工作(FF4,IE9,Opera11,Webkit Nightly):http://dev.w3.org/SVG/modules/compositing/master/SVGCompositingPrimer.html - 但我也不知道这是否可以在HTML-DOM元素中使用。
答案 5 :(得分:1)
This is the closest I have seen,是的,所有资产都必须在画布中。请注意,Internet Explorer在版本9中开始支持尚未支持的画布,因此如果您必须支持IE&lt; 9,则必须使用解决方法。
答案 6 :(得分:1)
它已经登陆Chrome Canary,所以很快就会发布。 http://blogs.adobe.com/webplatform/2013/04/23/all-blend-modes-for-css-fragment-shaders-have-landed/
答案 7 :(得分:1)
您已经可以使用简单的CSS(无Canvas)。例如:
mix-blend-mode: 'multiply'
Internet Explorer可能不支持它,但其他浏览器也支持它。
https://developer.mozilla.org/en-US/docs/Web/CSS/mix-blend-mode
答案 8 :(得分:0)
根据所涉及的图像和您所追求的确切效果,您可以对图像和CSS渐变进行一些创意分层,以达到预期的效果:
http://jonathonhill.net/2012-04-23/blending-css-gradients-like-photoshop/
答案 9 :(得分:0)
我已经使用http://canvasquery.com/中的画布实现了gimp / photoshop中最流行的混合模式,但它不适用于relatime。
这会随着画布中原生混合模式的引入而改变
https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingseparable