add random button
This commit is contained in:
parent
5255ad5b30
commit
9e9452d057
@ -28,6 +28,7 @@
|
|||||||
<label class="control-label" for="quality">jpg quality <span class="control-slider-value"></span></label>
|
<label class="control-label" for="quality">jpg quality <span class="control-slider-value"></span></label>
|
||||||
<input class="control-input" type="range" id="quality" min="1" max="90" value="50" />
|
<input class="control-input" type="range" id="quality" min="1" max="90" value="50" />
|
||||||
</div>
|
</div>
|
||||||
|
<button id="random-button" class="button is-hidden">randomize</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="export-wrapper">
|
<div class="export-wrapper">
|
||||||
<button id="import-button" class="button">import image</button>
|
<button id="import-button" class="button">import image</button>
|
||||||
|
|||||||
@ -21,6 +21,7 @@ require(
|
|||||||
'src/export-png',
|
'src/export-png',
|
||||||
'src/save-button',
|
'src/save-button',
|
||||||
'src/import-button',
|
'src/import-button',
|
||||||
|
'src/random-button',
|
||||||
'util/feature-test',
|
'util/feature-test',
|
||||||
'lib/signals-1.0.0',
|
'lib/signals-1.0.0',
|
||||||
'lib/html5slider'
|
'lib/html5slider'
|
||||||
@ -33,6 +34,7 @@ require(
|
|||||||
png,
|
png,
|
||||||
save_button,
|
save_button,
|
||||||
import_button,
|
import_button,
|
||||||
|
random_button,
|
||||||
testFeatures,
|
testFeatures,
|
||||||
Signal
|
Signal
|
||||||
)
|
)
|
||||||
@ -46,6 +48,7 @@ require(
|
|||||||
signals: {
|
signals: {
|
||||||
'image-loaded' : new Signal(),
|
'image-loaded' : new Signal(),
|
||||||
'set-new-src' : new Signal(),
|
'set-new-src' : new Signal(),
|
||||||
|
'control-set' : new Signal(),
|
||||||
'control-updated' : new Signal(),
|
'control-updated' : new Signal(),
|
||||||
'export-png' : new Signal(),
|
'export-png' : new Signal(),
|
||||||
'saved' : new Signal()
|
'saved' : new Signal()
|
||||||
@ -58,6 +61,7 @@ require(
|
|||||||
png.init( shared );
|
png.init( shared );
|
||||||
save_button.init( shared );
|
save_button.init( shared );
|
||||||
import_button.init( shared );
|
import_button.init( shared );
|
||||||
|
random_button.init( shared );
|
||||||
image.init( shared );
|
image.init( shared );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
27
scripts/src/controls.js
vendored
27
scripts/src/controls.js
vendored
@ -28,16 +28,35 @@ define(
|
|||||||
|
|
||||||
is_initialized = true;
|
is_initialized = true;
|
||||||
|
|
||||||
|
signals['control-set'].add( setControlValues );
|
||||||
signals['control-updated'].dispatch( values );
|
signals['control-updated'].dispatch( values );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function controlUpdated( event )
|
function controlUpdated( element )
|
||||||
{
|
{
|
||||||
var target = event.target;
|
if ( element.target )
|
||||||
|
{
|
||||||
|
element = element.target;
|
||||||
|
}
|
||||||
|
|
||||||
updateValue( target.id, target.value );
|
updateValue( element.id, element.value );
|
||||||
updateValueInUI( target.id, target.value );
|
updateValueInUI( element.id, element.value );
|
||||||
|
}
|
||||||
|
|
||||||
|
function setControlValues( new_values )
|
||||||
|
{
|
||||||
|
var control;
|
||||||
|
|
||||||
|
for ( var id in new_values )
|
||||||
|
{
|
||||||
|
control = document.getElementById( id );
|
||||||
|
control.value = new_values[id];
|
||||||
|
controlUpdated( control );
|
||||||
|
}
|
||||||
|
|
||||||
|
values = new_values;
|
||||||
|
signals['control-updated'].dispatch( values );
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateValue( key, value )
|
function updateValue( key, value )
|
||||||
|
|||||||
67
scripts/src/random-button.js
Normal file
67
scripts/src/random-button.js
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
/*global define*/
|
||||||
|
define(
|
||||||
|
function()
|
||||||
|
{
|
||||||
|
var signals;
|
||||||
|
var controls;
|
||||||
|
var random_button;
|
||||||
|
var constraints = { };
|
||||||
|
|
||||||
|
function init( shared )
|
||||||
|
{
|
||||||
|
signals = shared.signals;
|
||||||
|
|
||||||
|
if ( shared.feature['query-selector-all'] )
|
||||||
|
{
|
||||||
|
controls = document.querySelectorAll( '.control-input' );
|
||||||
|
constraints = getConstraints( controls );
|
||||||
|
random_button = document.getElementById( 'random-button' );
|
||||||
|
|
||||||
|
random_button.addEventListener( 'click', buttonClicked, false );
|
||||||
|
random_button.classList.remove( 'is-hidden' );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function buttonClicked( event )
|
||||||
|
{
|
||||||
|
event.preventDefault();
|
||||||
|
randomize();
|
||||||
|
}
|
||||||
|
|
||||||
|
function randomize()
|
||||||
|
{
|
||||||
|
var new_values = { };
|
||||||
|
var constraint;
|
||||||
|
|
||||||
|
for ( var id in constraints )
|
||||||
|
{
|
||||||
|
constraint = constraints[id];
|
||||||
|
new_values[id] = getRandomInt( constraint.min, constraint.max );
|
||||||
|
}
|
||||||
|
|
||||||
|
signals['control-set'].dispatch( new_values );
|
||||||
|
}
|
||||||
|
|
||||||
|
function getConstraints( controls )
|
||||||
|
{
|
||||||
|
var result = { };
|
||||||
|
var control;
|
||||||
|
|
||||||
|
for ( var i = 0, len = controls.length; i < len; i++ )
|
||||||
|
{
|
||||||
|
control = controls[i];
|
||||||
|
result[control.id] = { min: parseInt( control.min, 10 ), max: parseInt( control.max, 10 ) };
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getRandomInt( min, max )
|
||||||
|
{
|
||||||
|
return Math.floor( Math.random() * ( max - min + 1 ) ) + min;
|
||||||
|
}
|
||||||
|
|
||||||
|
return { init: init };
|
||||||
|
}
|
||||||
|
);
|
||||||
@ -24,6 +24,11 @@ a:hover
|
|||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.is-hidden
|
||||||
|
{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.button
|
.button
|
||||||
{
|
{
|
||||||
background-color: #eaeaea;
|
background-color: #eaeaea;
|
||||||
@ -45,6 +50,12 @@ a:hover
|
|||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#random-button
|
||||||
|
{
|
||||||
|
position: relative;
|
||||||
|
top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
.headline
|
.headline
|
||||||
{
|
{
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user