| ||||||||||||
![]() |
Article | |||||||||||
|
||||||||||||
![]() |

โดย สรวุฒิ กอสุวรรณศิริ
clip:rect(top,right,bottom,left)
การใช้ JavaScript ติดต่อกับการคลิปเลเยอร์ สำหรับใน Netscape มีรูปแบบดังนี้ครับ
document.divName.clip.top
document.divName.clip.right
document.divName.clip.bottom
document.divName.clip.left
document.divName.clip.top=40px
"rect(0px 100px 50px 0px)"
ดังนั้น การอ่านค่าคลิปใน IE จะต้องอาศัยการตัด String ซึ่งผมจะขอเสนอวิธีการดังนี้var clipv = divName.style.clip.split("rect(")[1].split(")")[0].split("px")
เห็นโค้ดแล้วอย่าเพิ่งงนะครับ คำสั่งที่ผมนำมาใช้คือ split ซึ่งจะตัด String เข้าไปใน Array โดยใช้สัญลักษณ์ที่กำหนดในพารามิเตอร์เป็นตัวคั่น ยังจำได้ไหมครับว่า divName.style.clip เป็น String ดังนั้น ส่วนแรกที่เราจะดูก็คือdivName.style.clip.split("rect(")[1]
หมายความว่า ใช้ "rect(" แบ่ง String แน่นอนว่าจะแบ่งได้ 2 ส่วนคือ "" และ "0px 100px 50px 0px)" เลข [1] ที่ต่อท้ายหมายความว่า ให้เอาส่วนหลัง (ส่วน "0px 100px 50px 0px)") มาเป็นผลลัพธ์ ซึ่งมันก็เป็น String จึงนำมา Split ต่อได้var clipv = divName.style.clip.split("rect(")[1].split(")")[0]
คราวนี้ผมนำผลลัพธ์จากการ Split ครั้งแรก มาทำการ Split อีกครั้ง เพื่อตัด ")" ทิ้งไป ที่นี่ก็จะเหลือแค่"0px 100px 50px 0px"
ซึ่งผมจะเอามา Split ครั้งสุดท้าย โดยใช้ "px" เป็นตัวแบ่ง ก็จะได้ค่าทั้ง 4 ด้านไปเก็บไว้ในอาเรย์ clipv ถูกไหมครับ
function clipValues(obj,which) {
if (ns4) {
if (!obj.left) {obj=document.layers[obj]}
if (which=="t") return obj.clip.top
if (which=="r") return obj.clip.right
if (which=="b") return obj.clip.bottom
if (which=="l") return obj.clip.left
}
else if (ie4) {
if (!obj.left) {obj=document.all[obj].style}
var clipv = obj.clip.split("rect(")[1].split(")")[0].split("px")
if (which=="t") return Number(clipv[0])
if (which=="r") return Number(clipv[1])
if (which=="b") return Number(clipv[2])
if (which=="l") return Number(clipv[3])
}
}
function clipTo(obj,t,r,b,l) {
if (ns4) {
if (!obj.left) {obj=document.layers[obj]}
obj.clip.top = t
obj.clip.right = r
obj.clip.bottom = b
obj.clip.left = l
}
else {
if (ie4)
{
if (!obj.left) {obj=document.all[obj].style}
obj.clip = "rect("+t+"px "+r+"px "+b+"px "+l+"px)"
}
}
}

![]() |
© copyright 2001 Sorrawut Korsuwansiri | |