ฉันมีเมนู css บนไซต์ของฉันที่ขยายด้วย:hover
(ไม่มี js)
วิธีนี้ใช้งานได้ในลักษณะกึ่งเสียบน iDevices เช่นการแตะจะเปิดใช้งาน:hover
กฎและขยายเมนู แต่การแตะที่อื่นจะไม่ลบไฟล์:hover
. นอกจากนี้หากมีลิงก์ภายในองค์ประกอบที่เป็น:hover
'ed คุณต้องแตะสองครั้งเพื่อเปิดใช้งานลิงก์ (ทริกเกอร์การแตะครั้งแรก:hover
, การแตะครั้งที่สองที่เรียกลิงก์)
ฉันสามารถทำให้สิ่งต่างๆทำงานได้ดีบน iPhone โดยการผูกtouchstart
เหตุการณ์
ปัญหาคือบางครั้ง mobile safari ยังคงเลือกที่จะเรียกใช้:hover
กฎจาก css แทนที่จะเป็นtouchstart
เหตุการณ์ของฉัน!
ฉันรู้ว่านี่เป็นปัญหาเพราะเมื่อฉันปิดใช้งาน:hover
กฎทั้งหมดด้วยตนเองใน css ซาฟารีมือถือใช้งานได้ดี (แต่เบราว์เซอร์ทั่วไปไม่เห็นได้ชัดอีกต่อไป)
มีวิธี "ยกเลิก" :hover
กฎแบบไดนามิกสำหรับองค์ประกอบบางอย่างเมื่อผู้ใช้อยู่ในซาฟารีมือถือหรือไม่
ดูและเปรียบเทียบพฤติกรรมของ iOS ที่นี่: http://jsfiddle.net/74s35/3/ หมายเหตุ: มีเพียงคุณสมบัติ css บางอย่างเท่านั้นที่ทำให้เกิดพฤติกรรมการคลิกสองครั้งเช่น display: none; แต่ไม่ใช่พื้นหลัง: สีแดง; หรือตกแต่งข้อความ: ขีดเส้นใต้;