[英]Blend mode:multiply in Internet Explorer
我需要在模式乘法中将图像与红色正方形混合在一起。 据我所知,IE和Safari不支持css-property“blend-mode”,所以我尝试将它们在画布中混合在一起,一切正常 - 除了在IE中。 有没有办法让这些在IE中混合在一起或者不支持呢?
对于Internet Explorer,Canvas混合模式正在“考虑中”。
https://developer.microsoft.com/en-us/microsoft-edge/platform/status/mixblendmode/?q=blend
在IE中实现混合之前,您可以使用自己的乘法过滤器:
function multiply(R, G, B) {
var imgData = ctx.getImageData(0, 0, canvas.width, canvas.height);
var data = imgData.data;
for (var i = 0; i < data.length; i += 4) {
data[i ] = R * data[i ] / 255;
data[i + 1] = G * data[i + 1] / 255;
data[i + 2] = B * data[i + 2] / 255;
}
ctx.putImageData(imgData, 0, 0);
}
此多重图像过滤器也是跨浏览器兼容的。
在这里,我找到了一个完全css解决方案
https://teamtreehouse.com/community/fallback-for-css-blending-modes
这是:
<!--[if IE]>
<style>
.yourTargetClass:before {
content: "";
position: absolute;
height: 100%;
width: 100%;
background: rgba(10, 36, 54, 0.9); /* THIS IS WHAT EVER OVERLAY COLOUR YOU WANT */
}
</style>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.