Estoy tratando de hacer un botón, de modo que cuando el usuario haga clic en él, cambie su estilo mientras se mantiene presionado el botón del mouse. También quiero que cambie su estilo de manera similar si se toca en un navegador móvil. Lo aparentemente obvio para mí fue usar CSS: pseudo-clase activa, pero eso no funcionó. Intenté: concentrarme y tampoco funcionó. Intenté: flotar y pareció funcionar, pero mantuvo el estilo después de que quité el dedo del botón. Todas estas observaciones se realizaron en un iPhone 4 y un Droid 2.
¿Hay alguna forma de replicar el efecto en los navegadores móviles (iPhone, iPad, Android y, con suerte, otros)? Por ahora, estoy haciendo algo como esto:
<style type="text/css">
#testButton {
background: #dddddd;
}
#testButton:active, #testButton.active {
background: #aaaaaa;
}
</style>
...
<button type="button" id="testButton">test</button>
...
<script type='text/javascript' src='http://code.jquery.com/jquery-1.6.1.min.js'></script>
<script type='text/javascript'>
$("*").live("touchstart", function() {
$(this).addClass("active");
}).live("touchend", function() {
$(this).removeClass("active");
});
</script>
La pseudoclase: active es para navegadores de escritorio y la clase activa es para navegadores táctiles.
Me pregunto si hay una forma más sencilla de hacerlo, sin involucrar a Javascript.
hover
ymousedown
/ de maneramouseup
diferente, es difícil adaptarse a todas.