/*
JavaScript Bible, Fourth Edition
by Danny Goodman
John Wiley & Sons CopyRight 2001
*/
<HTML>
<HEAD>
<TITLE>Layer vs. Clip</TITLE>
<SCRIPT LANGUAGE="JavaScript">
var currClipTop = 0
var currClipLeft = 0
var currClipRight = 360
var currClipBottom = 180
function setClip(field) {
var val = parseInt(field.value)
switch (field.name) {
case "clipBottom" :
currClipBottom = val
break
case "clipRight" :
currClipRight = val
break
}
adjustClip()
showValues()
}
function adjustClip() {
document.getElementById("display").style.clip = "rect(" + currClipTop +
"px " + currClipRight + "px " + currClipBottom + "px " + currClipLeft +
"px)"
}
function setLayer(field) {
var val = parseInt(field.value)
switch (field.name) {
case "width" :
document.getElementById("display").style.width = val + "px"
break
case "height" :
document.getElementById("display").style.height = val + "px"
break
}
showValues()
}
function showValues() {
var form = document.forms[0]
var elem = document.getElementById("display")
var clipRect = getClipRect(elem)
form.width.value = parseInt(elem.style.width)
form.height.value = parseInt(elem.style.height)
form.clipRight.value = clipRect.right
form.clipBottom.value = clipRect.bottom
}
// convert clip property string to an object
function getClipRect(elem) {
var clipString = elem.style.clip
// assumes "rect(npx, npx, npx, npx)" form
// get rid of "rect("
clipString = clipString.replace(/rect\(/,"")
// get rid of "px)"
clipString = clipString.replace(/px\)/,"")
// get rid of remaining "px" strings
clipString = clipString.replace(/px/g,",")
// turn remaining string into an array
clipArray = clipString.split(",")
// make object out of array values
var clipRect = {top:parseInt(clipArray[0]), right:parseInt(clipArray[1]),
bottom:parseInt(clipArray[2]), left:parseInt(clipArray[3])}
return clipRect
}
</SCRIPT>
</HEAD>
<BODY onLoad="showValues()">
<H1>Layer vs. Clip Dimension Properties (W3C)</H1>
<HR>
Enter new layer and clipping values to adjust the layer.<P>
<DIV STYLE="position:absolute; top:130">
<FORM>
<TABLE>
<TR>
<TD ALIGN="right">layer.style.width:</TD>
<TD><INPUT TYPE="text" NAME="width" SIZE=3 onChange="setLayer(this)"></TD>
</TR>
<TR>
<TD ALIGN="right">layer.style.height:</TD>
<TD><INPUT TYPE="text" NAME="height" SIZE=3 onChange="setLayer(this)"></TD>
</TR>
<TR>
<TD ALIGN="right">layer.style.clip (right):</TD>
<TD><INPUT TYPE="text" NAME="clipRight" SIZE=3 onChange="setClip(this)"></TD>
</TR>
<TR>
<TD ALIGN="right">layer.style.clip (bottom):</TD>
<TD><INPUT TYPE="text" NAME="clipBottom" SIZE=3 onChange="setClip(this)"></TD>
</TR>
</TABLE>
</FORM>
</DIV>
<DIV ID="display" STYLE="position:absolute; top:130; left:250; width:360;
height:180; clip:rect(0px, 360px, 180px, 0px); background-color:coral">
<H2>ARTICLE I</H2>
<P>
Congress shall make no law respecting an establishment of religion, or
prohibiting the free exercise thereof; or abridging the freedom of speech, or of
the press; or the right of the people peaceably to assemble, and to petition the
government for a redress of grievances.
</P>
</DIV>
</BODY>
</HTML>
|