รู้ไหมว่า HTML ไม่ได้แค่แสดงรูปภาพเท่านั้น แต่ยังสามารถสร้าง “แผนที่ภาพ (Image Map)” ได้ด้วย
โดยใช้ <map> เพื่อกำหนดพื้นที่คลิกบนรูปภาพ และใช้ <area> เพื่อระบุแต่ละส่วนของภาพให้ลิงก์ไปยังหน้าอื่นได้
จากภาพตัวอย่าง:
- คลิกที่รูปแก้วกาแฟ ไปยัง หน้ากาแฟ
- คลิกที่สมุด ไปยัง หน้าสมุด
- คลิกที่ส้ม ไปยัง หน้าส้ม
การใช้งานแท็ก Map
แนวคิดของการใช้งาน <map> คือการกำหนดพื้นที่ของรูปภาพที่สามารถคลิกได้
โดยระบุว่าบริเวณใดของภาพจะเชื่อมโยงไปยังหน้าใด ซึ่งผู้พัฒนาเป็นผู้กำหนดเอง
วิธีการใช้งาน Image Map
ในโค้ดตัวอย่างก่อนหน้า <img> จะทำหน้าที่แสดงภาพตามปกติ
เพียงแต่มีการเพิ่มแอตทริบิวต์ usemap เพื่อเชื่อมโยงกับ <map> ที่กำหนดพื้นที่คลิกลิงก์ไว้

- ค่าใน
usemapต้องขึ้นต้นด้วยเครื่องหมาย# - ชื่อหลัง
#ต้องตรงกับค่าnameของ<map>
การสร้าง Image Map
<map> และตั้งค่า name ให้ตรงกับ usemap ของรูป
name="workmap" ต้องตรงกับ usemap="#workmap" ของ <img>
การระบุพื้นที่คลิก <area>
<area> ภายใน <map>
โดยกำหนดรูปร่าง shape ของพื้นที่ที่สามารถคลิกได้ | ค่า | รูปร่าง | คำอธิบาย |
|---|---|---|
rect | สี่เหลี่ยม | ใช้พิกัดจุดมุมบนซ้าย และมุมล่างขวา |
circle | วงกลม | ใช้พิกัดจุดศูนย์กลาง และรัศมี |
poly | หลายเหลี่ยม | ใช้พิกัดหลายจุดเชื่อมต่อกัน |
default | ทั้งภาพ | ครอบคลุมพื้นที่ทั้งหมด |
shape="rect" (สี่เหลี่ยม)
coords จำนวน 4 ค่า ได้แก่ x1,y1,x2,y2 ซึ่งแทนมุมซ้ายบนและมุมขวาล่างของพื้นที่คลิก จากตัวอย่างในรูป ค่าของแกน X และ Y คือ 311,197 หมายถึง 311 พิกเซลจากซ้าย, 197 พิกเซลจากบน
x และ y คือ 471,423 หมายถึง 471 พิกเซลจากซ้าย, 432 พิกเซลจากบน
เพียงเท่านี้ เราก็ได้พิกัดที่ต้องการแล้ว จากนั้นนำพิกัดที่ได้มาใส่ในโค้ด โดยเขียนได้ดังนี้
shape="circle" (วงกลม)
coords ทั้งหมด 3 ค่า ได้แก่ xCenter, yCenter, radius ซึ่งแทนตำแหน่งศูนย์กลางของวงกลมและรัศมีตามลำดับ 603,315
34
เมื่อได้พิกัดและรัศมีแล้ว สามารถเขียนโค้ดได้ดังนี้
shape="poly" (หลายเหลี่ยม)
x1,y1,x2,y2,... เพื่อกำหนดขอบเขตของรูปหลายเหลี่ยม
x และ y รอบรูปปลาดาว
Image Map กับ JavaScript
สามารถสร้างพื้นที่คลิกผ่านทางฟังก์ชันของ JavaScript ได้ โดยเพิ่ม Element <area> ลงใน JavaScript
สรุป
- ใช้
<map>เพื่อกำหนด แผนที่รูปภาพ (image map) - ใช้
<area>ภายในmapเพื่อระบุพื้นที่ที่คลิกได้ ภายใน image map - ใช้
usemapใน<img>เพื่อ เชื่อมโยงตำแหน่งคลิกกับ image map