Esquema: Crear dos elementos: un control deslizante/interruptor y un canal como padre de la corredera. Para alternar el estado, cambie el elemento deslizante entre una clase "encendida" y "apagada". En el estilo para una clase, configure "izquierda" en 0 y deje "a la derecha" la predeterminada; por la otra clase, hacer lo contrario:
<style type="text/css">
.toggleSwitch {
width: ...;
height: ...;
/* add other styling as appropriate to position element */
position: relative;
}
.slider {
background-image: url(...);
position: absolute;
width: ...;
height: ...;
}
.slider.on {
right: 0;
}
.slider.off {
left: 0;
}
</style>
<script type="text/javascript">
function replaceClass(elt, oldClass, newClass) {
var oldRE = RegExp('\\b'+oldClass+'\\b');
elt.className = elt.className.replace(oldRE, newClass);
}
function toggle(elt, on, off) {
var onRE = RegExp('\\b'+on+'\\b');
if (onRE.test(elt.className)) {
elt.className = elt.className.replace(onRE, off);
} else {
replaceClass(elt, off, on);
}
}
</script>
...
<div class="toggleSwitch" onclick="toggle(this.firstChild, 'on', 'off');"><div class="slider off" /></div>
Por otra parte, acaba de establecer la imagen de fondo para el "encendido" y "apagado" estados, lo cual es un enfoque mucho más fácil que curioseaba con el posicionamiento.
No sabe cómo esta pregunta es demasiado amplia después de casi 5 años de estar abierta. Esboza claramente lo que estoy buscando y obtuvo una respuesta el mismo día que responde perfectamente la pregunta. La pregunta todavía recibe mucha actividad y las nuevas respuestas que están vigentes se publican 4.5 años después de hacer la pregunta. – esac
Escribí [un tutorial] (http://blog.felixhagspiel.de/index.php/posts/custom-inputs) sobre cómo crear interruptores de encendido/apagado solo con CSS (también casillas de verificación y radios). [Aquí puede ver la demostración] (http://custom-inputs.felixhagspiel.de/) –
[No estoy seguro de su pregunta, pero probablemente esté buscando algo como esto.] (Http: //www.webdesignerwall. com/demo/jquery/simple-slide-panel.html) – Sarfraz