Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> HTML

คุณสมบัติ cursor ของ HTML DOM Style: รูปแบบเคอร์เซอร์เมาส์

คุณสมบัติ cursor ใช้สำหรับกำหนดหรือดึงค่ารูปแบบของเคอร์เซอร์เมาส์เมื่อชี้อยู่เหนือองค์ประกอบ

ไวยากรณ์ (Syntax)

object.style.cursor = value

ค่ามาตรฐาน (Standard Cursors)

ค่าคำอธิบายรูปเคอร์เซอร์
autoเบราว์เซอร์กำหนดเอง (ค่าเริ่มต้น)🖱️
defaultเคอร์เซอร์มาตรฐาน (ลูกศร)➡️
pointerลูกชี้ (มือชี้) - สำหรับลิงก์/ปุ่ม👆
textไอบีม (I-beam) - สำหรับข้อความ📝
crosshairเคอร์เซอร์ไขว้ (+)➕
moveลูกศร 4 ทิศ - ย้ายได้⤡
waitนาฬิการอ/หมุน - กำลังโหลด⏳
progressลูกศรพร้อมโหลด - ทำงานอยู่⏳➡️
helpเครื่องหมายคำถาม - ช่วยเหลือ❓
not-allowedวงกลมทับ - ห้าม/ไม่ได้🚫
no-dropห้ามวาง - Drag & Drop🚫📦

Resize Cursors (การปรับขนาด)

ค่าทิศทางรูปเคอร์เซอร์
e-resizeตะวันออก (ขวา)↔️
w-resizeตะวันตก (ซ้าย)↔️
n-resizeเหนือ (บน)↕️
s-resizeใต้ (ล่าง)↕️
ne-resizeตะวันออกเฉียงเหนือ↗️↙️
nw-resizeตะวันตกเฉียงเหนือ↖️↘️
se-resizeตะวันออกเฉียงใต้↘️↖️
sw-resizeตะวันตกเฉียงใต้↙️↗️
ew-resizeแนวนอน (E-W)↔️
ns-resizeแนวตั้ง (N-S)↕️
nesw-resizeNE-SW↗️↙️
nwse-resizeNW-SE↖️↘️
col-resizeคอลัมน์ (แนวนอน)↔️│
row-resizeแถว (แนวตั้ง)↕️─

ค่าพิเศษอื่นๆ

ค่าคำอธิบาย
grabมือจับ - พร้อมลาก (Grabbing)
grabbingมือจับติด - กำลังลาก
copyเคอร์เซอร์คัดลอก (+ ไฟล์)
aliasเคอร์เซอร์อเลียส (ลูกศรโค้ง)
cellเคอร์เซอร์เซลล์ (ตาราง)
context-menuมี Context Menu
vertical-textข้อความแนวตั้ง
zoom-inซูมเข้า (+)
zoom-outซูมออก (-)
noneไม่แสดงเคอร์เซอร์
url('path.cur'), autoCustom cursor (ต้องมี fallback)
initialค่าเริ่มต้น
inheritสืบทอดจากพาเรนต์

ตัวอย่างการใช้งาน

<!DOCTYPE html>
<html>
<head>
<style>
  #one { background-color: beige; padding: 20px; margin: 10px 0; }
  #two { background-color: lavender; padding: 20px; margin: 10px 0; }
</style>
<script>
  function changeCursor() {
    document.getElementById("one").style.cursor = "cell";
    document.getElementById("two").style.cursor = "grab";
    document.getElementById("Sample").innerHTML = "วางเมาส์บนย่อหน้าแรก = cell, ย่อหน้าที่สอง = grab";
  }
</script>
</head>
<body>
<p id="one">ย่อหน้าแรก - วางเมาส์ดู cursor แบบ cell</p>
<p id="two">ย่อหน้าที่สอง - วางเมาส์ดู cursor แบบ grab</p>
<p>คลิกปุ่มเพื่อเปลี่ยนคุณสมบัติ cursor</p>
<button onclick="changeCursor()">เปลี่ยน Cursor</button>
<p id="Sample"></p>
</body>
</html>

ผลลัพธ์

หลังคลิกปุ่ม: วางเมาส์บนย่อหน้าแรก = 📊 cell cursor, ย่อหน้าที่สอง = 🤲 grab cursor

Custom Cursor

.custom-cursor {
  cursor: url('cursor.cur'), url('cursor.png') 16 16, auto;
  /* 16 16 = hotspot x y (จุดที่ชี้จริง) */
}

แนวทางปฏิบัติที่ดี (UX)

  • pointer สำหรับทุกอย่างที่คลิกได้ (button, link, card)
  • text สำหรับพื้นที่แก้ไขข้อความ
  • grab/grabbing สำหรับ Drag & Drop
  • not-allowed สำหรับปุ่ม disabled
  • wait/progress สำหรับ loading state
  • ไม่ควรเปลี่ยน cursor แบบสับสนผู้ใช้
  • Custom cursor: ขนาดสูงสุด 128x128px, ใช้ .cur หรือ .png