我有一个裁剪插件,当你拖动它时可以平移图像。我想在顶部应用一个蒙版 png 以给人一种切割形状的印象。 这是jsfiddle
它使用图像掩码 div 上的 css3 属性pointer-events:none;
,并且可以在 chrome 和 firefox 等 webkit 浏览器中使用。但它在 IE 中不起作用,因为pointer-events: none;
它只适用于 SVG。
我对如何通过 div 传递指针事件进行了大量研究。我尝试了一些解决方案,但它们令人头疼,有些不起作用:
在深入研究了我正在使用的插件之后,我能够扩展它并让它在 IE 浏览器(仅测试 8 和 9)和其他浏览器中工作,而不是使用该pointer-events
选项。 这是新版本的jsfiddle。 但我真的不知道它为什么有效?我基本上做了三件事。
- 将掩码 src 作为选项传入
添加检查以查看是否提供了掩码选项,如果提供,则加载函数:
if (this.options.mask_src) { var masksrc = this.options.mask_src; this.createMask(masksrc); }
让函数将带有掩码图像的 div 作为背景图像附加到文档 div:
createMask: function(m_src) { $('<div class="iviewer_image_mask" style="background: url('+ m_src +');"></div>').appendTo(this.container); },
谁能向我解释为什么此解决方案适用于具有遮罩层的图像平移?就像它只是将鼠标事件应用于图像,而忽略遮罩层。