mirror of
https://github.com/0x1d/esp8266-laser.git
synced 2025-12-14 18:15:22 +01:00
more styling
This commit is contained in:
@@ -16,28 +16,28 @@
|
||||
<ul>
|
||||
<li class="form-row info">
|
||||
<label>Frequency</label>
|
||||
<label>123</label>
|
||||
<label data-actuator-id="laser">1</label>
|
||||
</li>
|
||||
<li class="form-row info">
|
||||
<li class="form-row">
|
||||
<input type="range" class="laser slider" value="1" min="1" max="128">
|
||||
</li>
|
||||
<li class="form-row info">
|
||||
<label>Motor 1</label>
|
||||
<label>23</label>
|
||||
<label data-actuator-id="motor1">1</label>
|
||||
</li>
|
||||
<li class="form-row info">
|
||||
<li class="form-row">
|
||||
<input type="range" class="motor slider" value="1" min="1" max="128" data-motor-nr="1">
|
||||
</li>
|
||||
<li class="form-row info">
|
||||
<label>Motor 3</label>
|
||||
<label>324</label>
|
||||
<label data-actuator-id="motor2">1</label>
|
||||
</li>
|
||||
<li class="form-row">
|
||||
<input type="range" class="motor slider" value="1" min="1" max="128" data-motor-nr="2">
|
||||
</li>
|
||||
<li class="form-row info">
|
||||
<label>Motor 3</label>
|
||||
<label>123</label>
|
||||
<label data-actuator-id="motor3">1</label>
|
||||
</li>
|
||||
<li class="form-row">
|
||||
<input type="range" class="motor slider" value="1" min="1" max="128" data-motor-nr="3">
|
||||
@@ -69,7 +69,10 @@
|
||||
<form>
|
||||
<li class="form-row">
|
||||
<label for="ap">AP Mode</label>
|
||||
<span class="toggle"><input type="checkbox" name="ap"></span>
|
||||
<label class="switch">
|
||||
<input type="checkbox">
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</li>
|
||||
<li class="form-row">
|
||||
<label for="ssid">SSID</label>
|
||||
|
||||
@@ -113,7 +113,7 @@ var $ = function(selector){
|
||||
actuator.data.call(this) : [this.value]
|
||||
);
|
||||
}
|
||||
$(domEl).on(actuator.event, handle)
|
||||
domEl.addEventListener(actuator.event, handle)
|
||||
});
|
||||
};
|
||||
},
|
||||
@@ -163,31 +163,46 @@ var $ = function(selector){
|
||||
}
|
||||
};Sui.ready(() => {
|
||||
let debugResponse = (data) => {
|
||||
document.querySelector('#response').html(data);
|
||||
document.querySelector('#response').innerHTML = data;
|
||||
};
|
||||
|
||||
// init collapsible containers
|
||||
Sui.select('.collapsible').forEach((container) => {
|
||||
container.querySelector('.heading').addEventListener('click', (item) => {
|
||||
container.classList.toggle('open');
|
||||
});
|
||||
});
|
||||
|
||||
// init actuators
|
||||
[{
|
||||
api: 'MOTOR',
|
||||
method: 'POST',
|
||||
selector: '.motor.slider',
|
||||
event: 'change',
|
||||
data: function() {
|
||||
let payload = {};
|
||||
payload['motor' + this.getAttribute('data-motor-nr')] = this.value;
|
||||
return Sui.util.serialize(payload);
|
||||
},
|
||||
onResponse: debugResponse
|
||||
}, {
|
||||
api: 'LASER',
|
||||
method: 'POST',
|
||||
selector: '.laser.slider',
|
||||
selector: '.slider.motor',
|
||||
event: 'change',
|
||||
onResponse: debugResponse,
|
||||
data: function() {
|
||||
let payload = {},
|
||||
motorValue = this.value,
|
||||
motorNr = this.getAttribute('data-motor-nr'),
|
||||
actuatorId = 'motor' + motorNr;
|
||||
// update actuator value label
|
||||
Sui.select('[data-actuator-id=\"'+ actuatorId + '\"]')
|
||||
.forEach( element => element.innerHTML = motorValue);
|
||||
// add actuator to payload
|
||||
payload[actuatorId] = motorValue;
|
||||
return Sui.util.serialize(payload);
|
||||
}
|
||||
}, {
|
||||
api: 'LASER',
|
||||
method: 'POST',
|
||||
selector: '.slider.laser',
|
||||
event: 'change',
|
||||
onResponse: debugResponse,
|
||||
data: function() {
|
||||
// update actuator value label
|
||||
Sui.select('[data-actuator-id="laser"]')
|
||||
.forEach( element => element.innerHTML = this.value );
|
||||
// return payload
|
||||
return Sui.util.serialize({
|
||||
laser: this.value
|
||||
});
|
||||
|
||||
140
data/styles.css
140
data/styles.css
@@ -1,3 +1,140 @@
|
||||
input[type=range] {
|
||||
-webkit-appearance: none;
|
||||
width: 100%;
|
||||
margin: 8.4px 0;
|
||||
}
|
||||
input[type=range]:focus {
|
||||
outline: none;
|
||||
}
|
||||
input[type=range]::-webkit-slider-runnable-track {
|
||||
width: 100%;
|
||||
height: 3.2px;
|
||||
cursor: pointer;
|
||||
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
|
||||
background: #097479;
|
||||
border-radius: 1.3px;
|
||||
border: 0.2px solid #010101;
|
||||
}
|
||||
input[type=range]::-webkit-slider-thumb {
|
||||
box-shadow: 0.6px 0.6px 2.8px #000000, 0px 0px 0.6px #0d0d0d;
|
||||
border: 0.4px solid #000000;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
border-radius: 50px;
|
||||
background: #0eb8c0;
|
||||
cursor: pointer;
|
||||
-webkit-appearance: none;
|
||||
margin-top: -8.6px;
|
||||
}
|
||||
input[type=range]:focus::-webkit-slider-runnable-track {
|
||||
background: #0eb4bb;
|
||||
}
|
||||
input[type=range]::-moz-range-track {
|
||||
width: 100%;
|
||||
height: 3.2px;
|
||||
cursor: pointer;
|
||||
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
|
||||
background: #097479;
|
||||
border-radius: 1.3px;
|
||||
border: 0.2px solid #010101;
|
||||
}
|
||||
input[type=range]::-moz-range-thumb {
|
||||
box-shadow: 0.6px 0.6px 2.8px #000000, 0px 0px 0.6px #0d0d0d;
|
||||
border: 0.4px solid #000000;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
border-radius: 50px;
|
||||
background: #0eb8c0;
|
||||
cursor: pointer;
|
||||
}
|
||||
input[type=range]::-ms-track {
|
||||
width: 100%;
|
||||
height: 3.2px;
|
||||
cursor: pointer;
|
||||
background: transparent;
|
||||
border-color: transparent;
|
||||
color: transparent;
|
||||
}
|
||||
input[type=range]::-ms-fill-lower {
|
||||
background: #043437;
|
||||
border: 0.2px solid #010101;
|
||||
border-radius: 2.6px;
|
||||
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
|
||||
}
|
||||
input[type=range]::-ms-fill-upper {
|
||||
background: #097479;
|
||||
border: 0.2px solid #010101;
|
||||
border-radius: 2.6px;
|
||||
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
|
||||
}
|
||||
input[type=range]::-ms-thumb {
|
||||
box-shadow: 0.6px 0.6px 2.8px #000000, 0px 0px 0.6px #0d0d0d;
|
||||
border: 0.4px solid #000000;
|
||||
height: 20px;
|
||||
width: 20px;
|
||||
border-radius: 50px;
|
||||
background: #0eb8c0;
|
||||
cursor: pointer;
|
||||
height: 3.2px;
|
||||
}
|
||||
input[type=range]:focus::-ms-fill-lower {
|
||||
background: #097479;
|
||||
}
|
||||
input[type=range]:focus::-ms-fill-upper {
|
||||
background: #0eb4bb;
|
||||
}
|
||||
/* The switch - the box around the slider */
|
||||
.switch {
|
||||
position: relative;
|
||||
display: inline;
|
||||
/* The slider */
|
||||
/* Rounded sliders */
|
||||
}
|
||||
.switch input {
|
||||
display: none;
|
||||
}
|
||||
.switch .slider {
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: #b3b2b2;
|
||||
-webkit-transition: .4s;
|
||||
transition: .4s;
|
||||
margin-left: -40px;
|
||||
}
|
||||
.switch .slider:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
height: 26px;
|
||||
width: 26px;
|
||||
left: 4px;
|
||||
bottom: 4px;
|
||||
background-color: white;
|
||||
-webkit-transition: .4s;
|
||||
transition: .4s;
|
||||
}
|
||||
.switch input:checked + .slider {
|
||||
background-color: #097479;
|
||||
}
|
||||
.switch input:focus + .slider {
|
||||
box-shadow: 0 0 1px #0eb8c0;
|
||||
}
|
||||
.switch input:checked + .slider:before {
|
||||
-webkit-transform: translateX(26px);
|
||||
-ms-transform: translateX(26px);
|
||||
transform: translateX(26px);
|
||||
}
|
||||
.switch .slider.round {
|
||||
border-radius: 34px;
|
||||
height: 34px;
|
||||
width: 60px;
|
||||
}
|
||||
.switch .slider.round:before {
|
||||
border-radius: 50%;
|
||||
}
|
||||
form .form-row {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
@@ -11,6 +148,9 @@ form .form-row > label {
|
||||
form .form-row > label + label {
|
||||
flex: 0;
|
||||
}
|
||||
form .form-row > label.switch + label {
|
||||
flex: 1;
|
||||
}
|
||||
form .form-row > input {
|
||||
flex: 2;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user