我试图在我的页面上运行多个Autodesk Forge Viewer(v6.2)实例,但隐藏在选项卡中。
当用户切换选项卡时,它将隐藏并显示带有已加载模型的查看器。
在执行此操作的同时,任何已加载模型的隐藏实例都会在事件(例如resize事件)上中断,并给出如下错误:
VM19014 viewer3D.min.js:53 Uncaught TypeError: Cannot read property '__webglFramebuffer' of null
at k.initFrameBufferMRT (VM19014 viewer3D.min.js:53)
我已经看过了.tearDown()
,finish()
但是它们似乎完全在查看器中卸载了模型,从而降低了用户的体验。
如果看不见,是否可以暂停查看器?
编辑:
我接受了以下答案,因为它是一种正确的解决方案,而且如果我要重新制作此页面,可能会寻求解决方案。
最后,我采用了另一种解决方法,将整个选项卡的内容移到了屏幕外,因此画布仍位于DOM中,并且不会使内容跳来跳去:
.tab-content {
top: -9999px;
left: -9999px;
position: absolute;
display: block !important;
}
恐怕没有办法暂停查看器的初始化。只能使用非零尺寸的画布进行初始化。您可以尝试使用z-index
代替隐藏查看器的多个实例,display:none
以便它们都获得非空的画布并正确初始化。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句