Tôi đang cố gắng tạo một nút, sao cho khi người dùng nhấp vào nó, nó sẽ thay đổi kiểu trong khi nút chuột đang được giữ. Tôi cũng muốn nó thay đổi phong cách theo cách tương tự nếu nó được chạm vào trong trình duyệt di động. Điều dường như hiển nhiên với tôi là sử dụng CSS: active pseudo-class, nhưng điều đó không hoạt động. Tôi đã thử: tập trung, và nó cũng không hoạt động. Tôi đã thử: di chuột, và nó có vẻ hoạt động, nhưng nó vẫn giữ nguyên kiểu sau khi tôi bỏ ngón tay ra khỏi nút. Tất cả những quan sát này đều trên iPhone 4 và Droid 2.
Có cách nào để tái tạo hiệu ứng trên các trình duyệt di động (iPhone, iPad, Android và hy vọng là các trình duyệt khác) không? Hiện tại, tôi đang làm một việc như sau:
<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>
Lớp giả: hoạt động dành cho trình duyệt máy tính để bàn và lớp hiện hoạt dành cho trình duyệt cảm ứng.
Tôi đang tự hỏi liệu có cách nào đơn giản hơn để làm điều đó mà không liên quan đến Javascript hay không.
hover
vàmousedown
/mouseup
khác, thật khó để đáp ứng tất cả.