ข้ามไปเนื้อหาหลัก

ปัญหาการลากขอบซ้ายของ div และวิธีแก้ปัญหาเขียนโค้ด

นักพัฒนาเว็บแชร์ปัญหาการเขียนฟังก์ชัน JavaScript เพื่อปรับตำแหน่งและขนาดของ div ไปพร้อมกัน โดยพบปัญหาขยายผิดพลาด

เรียบเรียงโดย AI
Inewgen
01 Sep 2026ที่มา: Dev.to2 นาทีอ่าน (0 ครั้ง)อัปเดตล่าสุด 02 Sep 2026
แชร์
ปัญหาการลากขอบซ้ายของ div และวิธีแก้ปัญหาเขียนโค้ด

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ขนาดตัวอักษร
  • นักพัฒนาเผชิญปัญหาการลากขอบซ้ายของ div แล้วขนาดกว้างผิดพลาด
  • การปรับค่า style.left และ style.width พร้อมกันทำให้การแสดงผลรวน
  • ตัวแปร global เช่น g_strGrabbedBorder ใช้ตรวจสอบสถานะการลากเมาส์
  • ชุมชน Dev.to เปิดพื้นที่ให้โปรแกรมเมอร์ร่วมแชร์ทางแก้ปัญหาทางเทคนิค

นักพัฒนาซอฟต์แวร์รายหนึ่งได้ออกมาแชร์ปัญหาผ่านแพลตฟอร์ม Dev.to เกี่ยวกับการเขียนฟังก์ชัน JavaScript เพื่อจัดการกับองค์ประกอบหน้าเว็บ โดยเฉพาะความพยายามในการลากขอบซ้ายของ div เพื่อปรับขนาดไปพร้อมกับการเปลี่ยนตำแหน่ง

ในโค้ดต้นฉบับ เงื่อนไขเช่น if (g_strGrabbedBorder == "") ถูกใช้งานเพื่อบ่งบอกว่าผู้ใช้งานกำลังลาก div ที่สร้างขึ้นแบบไดนามิกด้วยเมาส์ ซึ่งตัวแปรนี้เป็นตัวแปรสากลที่ถูกกำหนดค่าผ่านตัวจัดการเหตุการณ์คลิกปุ่มซ้ายของเมาส์ ซึ่งการลากย้ายตำแหน่งทั่วไปนั้นทำงานได้อย่างสมบูรณ์แบบไม่มีปัญหา

อย่างไรก็ตาม ปัญหาที่ซับซ้อนกว่านั้นเกิดขึ้นเมื่อต้องการทำทั้งการเปลี่ยนตำแหน่ง (reposition) และการปรับขนาด (resize) ของ div ไปพร้อมกันในเวลาเดียวกัน เมื่อขอบด้านซ้ายขยับไปทางขวา ความกว้างควรจะลดลงพร้อมกับตำแหน่งที่เลื่อนขวาตามไปด้วย

software developer computer screen code editor workspace

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ไม่อยากพลาดข่าวใหม่?

สมัครรับสรุปข่าวสารใหม่ทางอีเมล ไม่บ่อยจนรำคาญ

โฆษณา

นักพัฒนาได้ระบุว่า การพยายามเปลี่ยนแปลงค่า div.left และ div.width พร้อมกัน ส่งผลให้องค์ประกอบบนหน้าเว็บแสดงผลผิดเพี้ยนไปอย่างมาก เช่น เมื่อพยายามลากขอบซ้ายไปทางขวา แต่ขอบด้านขวากลับขยับหนีไปทางขวาเร็วกว่า ทำให้ขนาดความกว้างของ div เพิ่มขึ้นแทนที่จะลดลงตามที่ตั้งใจไว้

ในเชิงการพัฒนาเว็บ การปรับตำแหน่งและขนาดขององค์ประกอบแบบ absolute positioning พร้อมกัน มักต้องคำนวณจุดอ้างอิง (origin point) ของเมาส์ให้สัมพันธ์กับผลต่าง (delta) ของพิกัด X เสมอ การเปลี่ยนแค่ความกว้างโดยไม่คำนวณตำแหน่ง left ชดเชยด้วยสัดส่วนที่ถูกต้อง จะทำให้เบราว์เซอร์คำนวณกล่องสี่เหลี่ยมเพี้ยน เนื่องจากเบราว์เซอร์ยึดขอบขวาเป็นหลักเมื่อความกว้างเพิ่มขึ้น

ปัญหาดังกล่าวทำให้ผู้พัฒนาเกิดความสับสนและคิดหาวิธีแก้ไม่ออก จนต้องนำมาตั้งกระทู้สอบถามความคิดเห็นและแลกเปลี่ยนแนวทางแก้ไขในชุมชนออนไลน์ของนักพัฒนาซอฟต์แวร์

ที่มา: Dev.to

ความคิดเห็น

แสดงความคิดเห็น
0/2000

พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้