ตัวเลือกการทำงานด้วยการสัมผัส

พร็อพเพอร์ตี้ touch-action CSS ช่วยให้นักพัฒนาซอฟต์แวร์จํากัดวิธีที่ผู้ใช้โต้ตอบกับองค์ประกอบได้ ซึ่งเป็นประโยชน์อย่างยิ่งในการป้องกันการส่งเหตุการณ์เมื่อไม่จําเป็น

ก่อนเวอร์ชัน 55 Chrome รองรับ pan-x และ pan-y ซึ่งจํากัดองค์ประกอบให้เลื่อนไปในทิศทางเดียว

วิดีโอด้านล่างแสดงตัวอย่างองค์ประกอบที่ไม่มีการกำหนดการโต้ตอบด้วยการสัมผัส (ซ้าย) รวมถึงการเลื่อนในแนว x และแนว y (กลางและขวา)

CSS สำหรับ Screencast ช่วงกลางและขวาประกอบด้วย

.pan-x {
    touch-action: pan-x;
}

.pan-y {
    touch-action: pan-y;
}

ใน Chrome 55 มีการเพิ่ม pan-left, pan-right, pan-up และ pan-down พร็อพเพอร์ตี้เหล่านี้มีความแตกต่างเล็กๆ น้อยๆ แต่สำคัญในลักษณะการทํางาน

พร็อพเพอร์ตี้เหล่านี้จะบังคับให้ผู้ใช้เริ่มท่าทางสัมผัสในทิศทางเดียวก่อนเพื่อให้องค์ประกอบตอบสนอง ซึ่งคล้ายกับท่าทางสัมผัส "ดึงเพื่อรีเฟรช" ซึ่งตอบสนองเมื่อผู้ใช้ลากนิ้วลงบนหน้าจอเท่านั้น

วิดีโอต่อไปนี้แสดง pan-right และ pan-down ซึ่งต้องใช้ท่าทางสัมผัสโดยเริ่มจากขวาไปซ้ายและจากล่างขึ้นบนตามลำดับ เมื่อเริ่มใช้ท่าทางสัมผัสแล้ว คุณจะปัดไปมาจริงได้ เฉพาะทิศทางเริ่มต้นเท่านั้นที่ได้รับผลกระทบ

แม้ว่าวิดีโอจะสาธิตลักษณะการทํางานนี้ แต่คุณอาจลองทำด้วยตนเองได้ง่ายขึ้นโดยดูตัวอย่าง

CSS สำหรับการสาธิตนี้คือ

.pan-right {
    touch-action: pan-right;
}

.pan-down {
    touch-action: pan-down;
}

สิ่งสุดท้ายที่เกิดขึ้นในโลกของการดำเนินการด้วยการสัมผัสคือพร็อพเพอร์ตี้ pinch-zoom นี่เป็นพร็อพเพอร์ตี้ใหม่ใน Chrome 55 ที่อยู่หลังธง ซึ่งสามารถใช้กับตัวเลือกการแพนใดก็ได้ (เช่น pan-x, pan-y, pan-left, pan-right, pan-down, pan-up)

หากคุณบีบเข้าเว็บไซต์ โดยทั่วไปแล้ว มันจะเป็นการซูมเข้าที่เนื้อหาของหน้า การกําหนด touch-action จะป้องกันลักษณะการทํางานนี้ แต่การเพิ่มการซูมด้วยสองนิ้วจะเปิดใช้ลักษณะการทํางานนี้อีกครั้ง

วิดีโอนี้แสดงความแตกต่างระหว่าง touch-action: pan-x กับ touch-action: pan-x pinch-zoom

พร็อพเพอร์ตี้ทั้งหมดเหล่านี้ควรลดความซับซ้อนของตรรกะบางอย่างที่นักพัฒนาแอปต้องใช้ pointer-events