Я пытаюсь сделать кнопку так, чтобы, когда пользователь нажимает на нее, она меняет свой стиль, пока кнопка мыши удерживается. Я также хочу, чтобы он изменил свой стиль аналогичным образом, если его коснутся в мобильном браузере. Для меня казалось очевидным использовать псевдокласс CSS: active, но это не сработало. Я попробовал: focus, но тоже не вышло. Я попробовал: hover, и вроде сработало, но стиль сохранился после того, как я убрал палец с кнопки. Все эти наблюдения были на 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>
Псевдокласс: active предназначен для настольных браузеров, а активный класс - для сенсорных браузеров.
Мне интересно, есть ли более простой способ сделать это без использования Javascript.
hover
иmousedown
/ по-mouseup
разному, их сложно учесть.