我做了使用dat.gui一个菜单,我的applcation与three.js所。 它工作得很好,我还发现,按H键可以隐藏与dat.gui创建的菜单。 我的问题是如何使菜单显示/直接从代码中消失?
var gui = new dat.GUI();
gui.add(text, 'message');
gui.add(text, 'speed', -5, 5);
gui.???
我试图用一个DOMElement隐藏的属性和它的作品,但我想处理这个功能的独特方式。 有一个函数调用? 我注意到,相关的按键JavaScript事件通过在图书馆绑定相关的范围。 但是,什么是做这种正确的方法是什么?
我哈得同样的问题和解决它:
var gui = new dat.GUI();
dat.GUI.toggleHide();
你可以试试
var gui = new dat.GUI();
//... your logic here
gui.__proto__.constructor.toggleHide()
确定找到了解决方案通过添加以下功能dat.GUI的原型:
dat.GUI.prototype.removeFolder = function(name) {
var folder = this.__folders[name];
if (!folder) {
return;
}
folder.close();
this.__ul.removeChild(folder.domElement.parentNode);
delete this.__folders[name];
this.onResize();
}
你和我要找的是
var gui = new dat.GUI();
// to toggle it closed
gui.closed = true;
// to toggle it open again
gui.closed = false;
我得到这个从源头 在行2104这里打开和关闭内部功能正在做的正是这一点。
桂反应在飞行中的值更改(您可以重新分配从控制台gui.closed看到它在行动)。
您可以切换GUI上的一个DOMElement中的第一UL标签的“封闭”类。
以下是如何,如果你正在使用jQuery来做到这一点:
var gui = new dat.GUI();
$(gui.domElement).find(">ul").toggleClass("closed");
我建议:
$(gui.domElement).attr("hidden", true);
因为它也可以防止点击。 随着toggleHide()
有可能静止点击它。 刚刚闭幕它留下的机会,重新开放。
工作对我来说,因为我不希望用户重新打开它;)