Ich habe einen Umschalteingang erstellt, über den die Mitarbeiter festlegen können, ob sie sich im Büro befinden oder nicht. Ich verwende lokalen Speicher, um den Status der Eingabe zu speichern. Wenn ich mehr als einen Toggle-Eingang auf der Seite hinzufüge, kann der Status jedes Eingangs geändert werden, aber wenn ich die Seite neu lade, sind alle Eingaben aufgrund des lokalen Speichers der letzten Eingabe gleich (d. H. Alles aus).Ändern des Elementstils abhängig vom lokalen Speicher
Wie speichere ich jeden Umschaltstatus und verwende den lokalen Speicher, um sich daran zu erinnern?
CSS CODE
<style type="text/css">
.toggle {
-webkit-appearance: none;
appearance: none;
width: 150px;
height: 60px;
display: inline-block;
position: relative;
border-radius: 50px;
overflow: hidden;
outline: none;
border: none;
cursor: pointer;
background-color: red;
transition: background-color ease 0.3s;
}
.toggle:before {
content: "in out";
display: block;
position: absolute;
z-index: 2;
width: 80px;
height: 70px;
top: -5px;
left: -10px;
background: #fff;
border-radius: 50%;
font: 30px/70px Helvetica;
text-transform: uppercase;
font-weight: bold;
text-indent: -40px;
word-spacing: 85px;
color: #fff;
text-shadow: -1px -1px rgba(0,0,0,0.15);
white-space: nowrap;
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
transition: all cubic-bezier(0.3, 1.5, 0.7, 1) 0.3s;
}
.toggle:checked {
background-color: #4CD964;
}
.toggle:checked:before {
left: 75px;
}
.toggle.in {
background-color: #4CD964;
}
.toggle.in:before {
left: 75px;
}
</style>
HTML CODE
<input class="toggle" type="checkbox" />
<input class="toggle" type="checkbox" />
JQUERY CODE
var toggle = $('.toggle');
toggle.on('click', function(){
if ($('input[type=checkbox]:checked').length === 0) {
localStorage.setItem('result', 'out');
$(this).removeClass('in');
} else {
localStorage.setItem('result', 'in');
$(this).addClass('in');
}
})
if (localStorage.result === 'in') {
toggle.addClass('in');
} else {
toggle.removeClass('in');
}
Sie immer den gleichen Platz in Ihrem local overwriteing ('result'). Sie müssen sie separat oder als ein mit einem String versehenes Objekt/Array speichern. – Zammy
für die besten Ergebnisse verwenden Sie eine 'ID' für jede Eingabe und übergeben Sie Ihren localStorage-Wert für jede Eingabe in einem Objekt. –