Sto cercando di creare un pulsante, in modo tale che quando l'utente fa clic su di esso, cambia il suo stile mentre si tiene premuto il pulsante del mouse. Voglio anche che cambi il suo stile in un modo simile se viene toccato in un browser mobile. La cosa apparentemente ovvia per me era usare il CSS: pseudo-classe attiva, ma non funzionava. Ho provato: messa a fuoco, e anche questo non ha funzionato. Ho provato: hover, e sembrava funzionare, ma ha mantenuto lo stile dopo che ho tolto il dito dal pulsante. Tutte queste osservazioni erano su un iPhone 4 e un Droid 2.
C'è un modo per replicare l'effetto sui browser mobili (iPhone, iPad, Android e, si spera, altri)? Per ora, sto facendo qualcosa del genere:
<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 pseudo-classe: active è per i browser desktop e la classe attiva è per i browser touch.
Mi chiedo se esiste un modo più semplice per farlo, senza coinvolgere Javascript.
hover
emousedown
/ in modomouseup
diverso, è difficile adattarle tutte.