Próbuję zrobić przycisk, który po kliknięciu przez użytkownika zmienia swój styl, podczas gdy przycisk myszy jest wciśnięty. Chcę też, żeby zmienił swój styl w podobny sposób, jeśli zostanie dotknięty w przeglądarce mobilnej. Pozornie oczywistą rzeczą było dla mnie użycie CSS: aktywna pseudoklasa, ale to nie zadziałało. Próbowałem: skupić się i to też nie działało. Spróbowałem: unosić się i wydawało się, że działa, ale zachował styl po zdjęciu palca z przycisku. Wszystkie te obserwacje dotyczyły iPhone'a 4 i Droida 2.
Czy istnieje sposób na odtworzenie tego efektu w przeglądarkach mobilnych (iPhone, iPad, Android i miejmy nadzieję, że inne)? Na razie robię coś takiego:
<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>
Pseudo-klasa: active jest przeznaczona dla przeglądarek na komputerze, a klasa active dla przeglądarek dotykowych.
Zastanawiam się, czy istnieje prostszy sposób na zrobienie tego bez angażowania JavaScript.
hover
imousedown
/mouseup
inaczej, trudno jest je wszystkie uwzględnić.