官方站點:http://workshop.chromeexperiments.com/examples/gui/javascript
Dat.gui 使用教程:Dat.gui 是一個 GUI 組件,他能夠爲你的 demo 提供參數的設置。而且很容易上手。html
引入js 文件java
<script type="text/javascript" src="https://raw.github.com/dataarts/dat.gui/master/build/dat.gui.min.js"></script>
初始化配置git
var Options = function() { this.message = 'dat.gui'; this.speed = 0.8; this.displayOutline = false; this.button = function() {}; }; window.onload = function() { var options = new Options(); var gui = new dat.GUI(); gui.add(options, 'message'); gui.add(options, 'speed', -5, 5); gui.add(options, 'displayOutline'); gui.add(options, 'button'); };
這裏,在你的配置項:FizzyText 裏,GUI 會根據你設置的屬性類型來渲染不一樣的控件github
控制限制輸入項輸入類型以及值chrome
gui.add(text, 'noiseStrength').step(5); // 增加的步長 gui.add(text, 'growthSpeed', -5, 5); // 最大、最小值 gui.add(text, 'maxSize').min(0).step(0.25); // 最大值和步長 // 文本輸入項 gui.add(text, 'message', [ 'pizza', 'chrome', 'hooray' ] ); // 下拉框形式選擇文案 gui.add(text, 'speed', { Stopped: 0, Slow: 0.1, Fast: 5 } );
能夠使用文件夾給選項分組dom
var gui = new dat.GUI(); var f1 = gui.addFolder('Flow Field'); f1.add(text, 'speed'); f1.add(text, 'noiseStrength'); var f2 = gui.addFolder('Letters'); f2.add(text, 'growthSpeed'); f2.add(text, 'maxSize'); f2.add(text, 'message'); f2.open();
提供4種類型顏色輸入控制ide
var Options = function() { this.color0 = "#ffae23"; // CSS string this.color1 = [ 0, 128, 255 ]; // RGB array this.color2 = [ 0, 128, 255, 0.3 ]; // RGB with alpha this.color3 = { h: 350, s: 0.9, v: 0.3 }; // Hue, saturation, value }; window.onload = function() { var options = new Options(); var gui = new dat.GUI(); gui.addColor(options, 'color0'); gui.addColor(options, 'color1'); gui.addColor(options, 'color2'); gui.addColor(options, 'color3'); };
能夠使用 remember
方法開啓 GUI 的存儲模式,並且能夠分組存儲ui
var Options = function() { this.color0 = "#ffae23"; // CSS string }; window.onload = function() { var options = new Options(); var gui = new dat.GUI(); gui.remember(options); gui.addColor(options, 'color0'); };
固然你也能夠把以前保存的數據在初始化時導入this
var Options = function() { this.number = 1; }; window.onload = function() { var options = new Options(); var gui = new dat.GUI({ load:{ "preset": "kkkkk", "closed": false, "remembered": { "Default": { "0": { "number": 4 } }, "kkkkk": { "0": { "number": 6 } } }, "folders": {} } }); gui.remember(options); gui.add(options, 'number').min(0).max(10).step(1); };
能夠經過 preset
配置項指定使用哪一個分組的配置
你能夠爲每一項設置一個監聽事件 onChange
和 onFinishChange
var Options = function() { this.number = 1; }; window.onload = function() { var options = new Options(); var gui = new dat.GUI(); var controller = gui.add(options, 'number').min(0).max(10).step(1); controller.onChange(function(value) { console.log("onChange:" + value) }); controller.onFinishChange(function(value) { console.log("onFinishChange" + value) }); };
能夠經過 gui.domElement
獲取原生 dom 對象
若是你想從外部控制選項,你能夠爲選項調用 listen
方法,則你改變option時,也會同步到面板裏
var Options = function() { this.number = 1; }; window.onload = function() { var options = new Options(); var gui = new dat.GUI(); var controller = gui.add(options, 'number').min(0).max(10).step(1).listen(); setInterval(function() { options.number = Math.random() * 10; }, 500) };