Я намагаюся зробити кнопку такою, що коли користувач натискає на неї, вона змінює свій стиль, поки утримується кнопка миші. Я також хочу, щоб він змінив свій стиль подібним чином, якщо його торкнутися в мобільному браузері. Мені здавалося очевидним було використання CSS: активний псевдо-клас, але це не спрацювало. Я спробував: зосередитись, і це теж не спрацювало. Я спробував: навести, і це, здавалося, спрацювало, але він зберіг стиль після того, як я зняв палець з кнопки. Всі ці спостереження були на iPhone 4 та Droid 2.
Чи є спосіб відтворити ефект на мобільних браузерах (iPhone, iPad, Android і, сподіваюся, інші)? На даний момент я роблю щось подібне:
<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>
Активний псевдо-клас призначений для настільних браузерів, а активний клас - для сенсорних браузерів.
Мені цікаво, чи існує простіший спосіб зробити це, не залучаючи Javascript.
hover
іmousedown
/ по-mouseup
різному, важко вмістити їх усі.