项目场景:
之前一直在研究Threejs,遇到一个很头疼的问题!就是我自己使用了Vite+V3创建了一个项目框架,用来记录自己学习Three的一个过程,但是里面就存在了一个问题,我们在new GUI()后不能改变其父级元素,就像默认父级元素在body上一样
问题描述
GUI父级元素无法被改变
let gui = new GUI()
原因分析:
正好这段时间有空,本主就疯狂去找了lil-gui的官方文档,还好作者是个好人,还专门写了一篇web版的官方文档,然后在插件初始化的文档里面我们就找到了它是可以在初始化对象里面写入container元素的实例的。
new GUI( { container: document.getElementById( 'custom' ) } );
但是加入了这个父级元素的实例之后又会出现一个问题,这个页面纵向布局将会被打破,详情如下:
加入前
加入后:网页头部标签直接给我压扁了
解决方案:
然后我又去API文档疯狂找,最后是通过gui的domElement的style属性修改了子元素的样式,最后一步就是修改父级元素的定位方式,根据“子绝父相”的原则
gui = new GUI({ container: threeContainer.value, });
gui.domElement.style = 'position: absolute; top: 0; right: 0;';