我准备了一个混合的工作页面WebGL
and CSS3D
(在SO的一点帮助下here https://stackoverflow.com/questions/24681170/three-js-properly-blending-css3d-and-webgl/24688807#24688807),而且效果很好。我投入一个iframe https://dl.dropboxusercontent.com/u/728316/demos/css3dwebgl/example2.html为了更好的衡量:
但它缺乏与 iframe 交互的能力。
在mrdoobs纯粹CSS3D
demo http://mrdoob.com/lab/javascript/threejs/css3d/人们甚至可以滚动页面并标记文本等:
看起来,组合WebGL
在......面前CSS3D
渲染器阻碍了交互。有没有解决的办法?
谢谢,
短剑
You can apply https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events CSS
指针事件:无到WebGL
节点,以便事件通过它到达底层CSS3D
节点和 iframe。
您当前正在将 THREE.TrackballControls 附加到文档本身,因此不需要进行任何更改。
请注意,iframe 上的事件将直接分派到 iframe。父框架无法直接观察这些、捕获并转发它们或发送合成的。因此,当指针位于 iframe 上时,您会丢失导航控制事件。鼠标滚轮事件是一个例外谷歌浏览器 https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/umMJkGAQ_P0/QNSrr_eeDwAJ(分叉 WebKit),但可能不会持续太久(2016 年 - 2 月)。为了保持流畅的导航控制,一种方法是在“未使用”时用(可能是灰色的)透明 div 覆盖 iframe。当您认为用户希望与 iframe 进行交互时(无论是由于单击还是基于指针的轨迹),请移除此盖子。单击事件序列可以被拆分,父级捕获 mousedown,并发现将 mouseup 和单击事件留给 iframe - 但这是一个不完美的幻觉,具体取决于 iframe 站点不关心看到 mousedown。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)