Color shift slider, close buttons, fix mouse end
This commit is contained in:
parent
71459734e3
commit
94b6fdead2
@ -26,7 +26,7 @@ td, th {
|
|||||||
|
|
||||||
form input, form button {
|
form input, form button {
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
margin-top: 10px;
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
form label, form label strong {
|
form label, form label strong {
|
||||||
@ -42,8 +42,8 @@ form label strong {
|
|||||||
|
|
||||||
input {
|
input {
|
||||||
color: white;
|
color: white;
|
||||||
background-color: #2e2e2e;
|
background-color: rgba(46, 46, 46, 0.2);
|
||||||
border-color: #4a4a4a;
|
border-color: #222222;
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type=number] {
|
input[type=number] {
|
||||||
@ -75,3 +75,10 @@ div.panel {
|
|||||||
left: 0;
|
left: 0;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#close-controls, #close-help {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
padding: 3px 6px;
|
||||||
|
}
|
||||||
|
10
index.html
10
index.html
@ -21,6 +21,7 @@
|
|||||||
<button id="toggle-controls">Settings</button>
|
<button id="toggle-controls">Settings</button>
|
||||||
</div>
|
</div>
|
||||||
<div id="help" class="panel" style="display: none;">
|
<div id="help" class="panel" style="display: none;">
|
||||||
|
<button type="button" id="close-help">x</button>
|
||||||
<h2>Help</h2>
|
<h2>Help</h2>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
@ -106,11 +107,14 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div id="controls" class="panel" style="display: none;">
|
<div id="controls" class="panel" style="display: none;">
|
||||||
|
<button type="button" id="close-controls">x</button>
|
||||||
<form action="">
|
<form action="">
|
||||||
|
<button type="button" id="reset">Reset</button><br />
|
||||||
<label><strong>Cycle Duration:</strong>
|
<label><strong>Cycle Duration:</strong>
|
||||||
<input type="range" name="timeRange" min="1" max="360" value="60" oninput="this.form.timeInput.value=this.value" />
|
<input type="range" name="timeRange" min="1" max="360" value="60" oninput="this.form.timeInput.value=this.value" />
|
||||||
<input type="number" name="timeInput" min="1" max="360" value="60" oninput="this.form.timeRange.value=this.value" />
|
<input type="number" name="timeInput" min="1" max="360" value="60" oninput="this.form.timeRange.value=this.value" />
|
||||||
<button type="button" id="randomize-cycles">Randomize Point Cycle Starts</button>
|
<button type="button" id="synchronize-cycles">Synchronize Point Cycles</button>
|
||||||
|
<button type="button" id="randomize-cycles">Randomize Point Cycles</button>
|
||||||
</label><br />
|
</label><br />
|
||||||
<label><strong>Point Size:</strong>
|
<label><strong>Point Size:</strong>
|
||||||
<input type="range" name="pointSizeRange" min="0" max="50" value="0" oninput="this.form.pointSizeInput.value=this.value" />
|
<input type="range" name="pointSizeRange" min="0" max="50" value="0" oninput="this.form.pointSizeInput.value=this.value" />
|
||||||
@ -120,6 +124,10 @@
|
|||||||
<input type="range" name="lineSizeRange" min="1" max="50" value="1" oninput="this.form.lineSizeInput.value=this.value" />
|
<input type="range" name="lineSizeRange" min="1" max="50" value="1" oninput="this.form.lineSizeInput.value=this.value" />
|
||||||
<input type="number" name="lineSizeInput" min="1" max="50" value="1" oninput="this.form.lineSizeRange.value=this.value" />
|
<input type="number" name="lineSizeInput" min="1" max="50" value="1" oninput="this.form.lineSizeRange.value=this.value" />
|
||||||
</label><br />
|
</label><br />
|
||||||
|
<label><strong>Color Shift:</strong>
|
||||||
|
<input type="range" name="colorShiftRange" min="0" max="85" value="10" oninput="this.form.colorShiftInput.value=this.value" />
|
||||||
|
<input type="number" name="colorShiftInput" min="0" max="85" value="10" oninput="this.form.colorShiftRange.value=this.value" />
|
||||||
|
</label><br />
|
||||||
<label><strong>Point tweening:</strong>
|
<label><strong>Point tweening:</strong>
|
||||||
<label><input type="radio" name="tweening" value="linear" /> Linear</label>
|
<label><input type="radio" name="tweening" value="linear" /> Linear</label>
|
||||||
<label><input type="radio" name="tweening" value="meandering" checked /> Meandering</label>
|
<label><input type="radio" name="tweening" value="meandering" checked /> Meandering</label>
|
||||||
|
@ -248,7 +248,7 @@ function easeInOutCirc (t, b, c, d) {
|
|||||||
}
|
}
|
||||||
/* eslint-enable no-unused-vars */
|
/* eslint-enable no-unused-vars */
|
||||||
|
|
||||||
/* UTILITY FUNCTIONS */
|
/* TOGGLE FUNCTIONS */
|
||||||
|
|
||||||
function toggleHelp () {
|
function toggleHelp () {
|
||||||
var help, controls;
|
var help, controls;
|
||||||
@ -338,6 +338,8 @@ function toggleLines () {
|
|||||||
linesCheckbox.checked = drawLines;
|
linesCheckbox.checked = drawLines;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* UTILITY FUNCTIONS */
|
||||||
|
|
||||||
function randomInt (min, max) {
|
function randomInt (min, max) {
|
||||||
// inclusive of min and max
|
// inclusive of min and max
|
||||||
return Math.floor(Math.random() * (max - min + 1)) + min;
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
||||||
@ -579,6 +581,14 @@ function randomizeCycles (points, cycleDuration) {
|
|||||||
return points;
|
return points;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function synchronizeCycles (points, cycleDuration) {
|
||||||
|
/* Assigns every point the same cycle start (0) */
|
||||||
|
for (var i = 0; i < points.original.length; i++) {
|
||||||
|
points.target[i][3] = 0;
|
||||||
|
}
|
||||||
|
return points;
|
||||||
|
}
|
||||||
|
|
||||||
/* DRAW FUNCTIONS */
|
/* DRAW FUNCTIONS */
|
||||||
|
|
||||||
function drawPolygon (polygon, points, counter, tweeningFns) {
|
function drawPolygon (polygon, points, counter, tweeningFns) {
|
||||||
@ -849,12 +859,10 @@ window.onload = function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
window.addEventListener('touchend', function (e) {
|
window.addEventListener('touchend', function (e) {
|
||||||
if (e.target.tagName !== 'CANVAS') return;
|
|
||||||
clickEnd = true;
|
clickEnd = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
window.addEventListener('touchcancel', function (e) {
|
window.addEventListener('touchcancel', function (e) {
|
||||||
if (e.target.tagName !== 'CANVAS') return;
|
|
||||||
clickEnd = true;
|
clickEnd = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -875,21 +883,18 @@ window.onload = function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
window.addEventListener('mouseup', function (e) {
|
window.addEventListener('mouseup', function (e) {
|
||||||
if (e.target.tagName !== 'CANVAS') return;
|
|
||||||
clickEnd = true;
|
clickEnd = true;
|
||||||
hover = null;
|
hover = null;
|
||||||
lastHover = null;
|
lastHover = null;
|
||||||
});
|
});
|
||||||
|
|
||||||
window.addEventListener('mouseleave', function (e) {
|
window.addEventListener('mouseleave', function (e) {
|
||||||
if (e.target.tagName !== 'CANVAS') return;
|
|
||||||
clickEnd = true;
|
clickEnd = true;
|
||||||
hover = null;
|
hover = null;
|
||||||
lastHover = null;
|
lastHover = null;
|
||||||
});
|
});
|
||||||
|
|
||||||
document.addEventListener('mouseleave', function (e) {
|
document.addEventListener('mouseleave', function (e) {
|
||||||
if (e.target.tagName !== 'CANVAS') return;
|
|
||||||
clickEnd = true;
|
clickEnd = true;
|
||||||
hover = null;
|
hover = null;
|
||||||
lastHover = null;
|
lastHover = null;
|
||||||
@ -949,6 +954,19 @@ window.onload = function () {
|
|||||||
toggleControls();
|
toggleControls();
|
||||||
}, false);
|
}, false);
|
||||||
|
|
||||||
|
document.getElementById('close-help').addEventListener('click', function () {
|
||||||
|
toggleHelp();
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
document.getElementById('close-controls').addEventListener('click', function () {
|
||||||
|
toggleControls();
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
document.getElementById('synchronize-cycles').addEventListener('click', function () {
|
||||||
|
synchronizeCycles(polygonPoints, cycleDuration);
|
||||||
|
return false;
|
||||||
|
}, false);
|
||||||
|
|
||||||
document.getElementById('randomize-cycles').addEventListener('click', function () {
|
document.getElementById('randomize-cycles').addEventListener('click', function () {
|
||||||
randomizeCycles(polygonPoints, cycleDuration);
|
randomizeCycles(polygonPoints, cycleDuration);
|
||||||
return false;
|
return false;
|
||||||
@ -1005,6 +1023,19 @@ window.onload = function () {
|
|||||||
lineSize = parseInt(this.value, 10);
|
lineSize = parseInt(this.value, 10);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var colorShiftRange, colorShiftInput;
|
||||||
|
colorShiftRange = document.getElementsByName('colorShiftRange')[0];
|
||||||
|
colorShiftRange.value = disconnectedColorShiftAmt;
|
||||||
|
colorShiftRange.addEventListener('input', function (e) {
|
||||||
|
disconnectedColorShiftAmt = parseInt(this.value, 10);
|
||||||
|
});
|
||||||
|
|
||||||
|
colorShiftRange = document.getElementsByName('colorShiftRange')[0];
|
||||||
|
colorShiftRange.value = disconnectedColorShiftAmt;
|
||||||
|
colorShiftRange.addEventListener('input', function (e) {
|
||||||
|
disconnectedColorShiftAmt = parseInt(this.value, 10);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
debugCheckbox.addEventListener('change', function (e) {
|
debugCheckbox.addEventListener('change', function (e) {
|
||||||
toggleDebug();
|
toggleDebug();
|
||||||
|
Loading…
Reference in New Issue
Block a user