ฉันกำลังพยายามสร้างปุ่มซึ่งเมื่อผู้ใช้คลิกปุ่มนั้นจะเปลี่ยนรูปแบบขณะที่กดปุ่มเมาส์ค้าง ฉันยังต้องการให้เปลี่ยนรูปแบบในลักษณะเดียวกันหากสัมผัสในเบราว์เซอร์มือถือ สิ่งที่เห็นได้ชัดสำหรับฉันคือการใช้ CSS: active pseudo-class แต่ไม่ได้ผล ฉันพยายาม: โฟกัส แต่มันก็ไม่ได้ผลเช่นกัน ฉันลอง: วางเมาส์เหนือและดูเหมือนจะใช้งานได้ แต่มันยังคงรูปแบบไว้หลังจากที่ฉันเอานิ้วออกจากปุ่ม การสังเกตทั้งหมดนี้อยู่ใน 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
แตกต่างกันซึ่งยากที่จะรองรับได้ทั้งหมด