dat.gui如何隐藏的代码菜单(dat.gui how to hide menu with cod

2019-08-16 18:08发布

我做了使用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事件通过在图书馆绑定相关的范围。 但是,什么是做这种正确的方法是什么?

Answer 1:

我哈得同样的问题和解决它:

var gui = new dat.GUI();
dat.GUI.toggleHide();


Answer 2:

作为最新版本:

gui.close();



Answer 3:

你可以试试

var gui = new dat.GUI();
 //... your logic here
gui.__proto__.constructor.toggleHide()


Answer 4:

确定找到了解决方案通过添加以下功能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();
  }


Answer 5:

你和我要找的是

var gui = new dat.GUI();
// to toggle it closed
gui.closed = true;
// to toggle it open again
gui.closed = false;

我得到这个从源头 在行2104这里打开关闭内部功能正在做的正是这一点。

桂反应在飞行中的值更改(您可以重新分配从控制台gui.closed看到它在行动)。



Answer 6:

您可以切换GUI上的一个DOMElement中的第一UL标签的“封闭”类。

以下是如何,如果你正在使用jQuery来做到这一点:

var gui = new dat.GUI();
$(gui.domElement).find(">ul").toggleClass("closed");


Answer 7:

我建议:

$(gui.domElement).attr("hidden", true);

因为它也可以防止点击。 随着toggleHide()有可能静止点击它。 刚刚闭幕它留下的机会,重新开放。

工作对我来说,因为我不希望用户重新打开它;)



文章来源: dat.gui how to hide menu with code