I tried to use dat.GUI in the following three.js example.
I just did the following code changes to add a GUI to adjust mesh opacity.
var loader=new THREE.VTKLoader();
loader.load ("models/vtk/bunny.vtk", function(geom){
var mesh = new THREE.Mesh(geom, material );
mesh.doubleSided=true;
mesh.position.setY(-0.09);
scene.add( mesh );
var gui = new dat.GUI();
var view = this;
view.Opacity = 0.2;
var maingui = gui.addFolder('Main');
var opacity = maingui.add(view, 'Opacity', 0, 1);
opacity.onChange( function(value) {
mesh.material.opacity = value;
});
maingui.open();
animate();
Now, once I click the opacity slider the mouse is just following the slider. I am not able to come out of the mouse click.
Old subject but I just have a similar issue and previous solution wasn't ok for my case. To fix it I create a specific canvas for the dat.gui module:
Html part:
Css part:
Js Part:
With this method the elements are isolate and I have no event conflict anymore.
Edit: for more details you have all code here https://github.com/quentinchap/threeJs-morphing-test
I changed my code as shown in the example to "
THREE.TrackballControls(camera, renderer.domElement)
" but I still effect my GUI when I used it once and can't deselect it from this moment. Is there any possibility to deactivate or to deselect the active GUI parts with a command? or something like "gui.deselect.all" ?Move the controls init block after the renderer init block, and change this line:
to this: