Mega Code Archive

 
Categories / JavaScript DHTML / HTML
 

Using getBoundingClientRect()

/* JavaScript Bible, Fourth Edition by Danny Goodman  John Wiley & Sons CopyRight 2001 */ <HTML> <HEAD> <TITLE>getClientRects() and getBoundClientRect() Methods</TITLE> <SCRIPT LANGUAGE="JavaScript"> function hilite() {     var hTop, hLeft, hRight, hBottom, hWidth     var select = document.forms[0].choice     var n = parseInt(select.options[select.selectedIndex].value) - 1     var clientRects = document.all.main.getClientRects()     var mainElem = document.all.main     if (n >= 0 && n < clientRects.length) {         if (document.forms[0].fullWidth.checked) {             hLeft = mainElem.getBoundingClientRect().left             hRight = mainElem.getBoundingClientRect().right         } else {             hLeft = clientRects[n].left             hRight = clientRects[n].right         }         document.all.hiliter.style.pixelTop = clientRects[n].top +              document.body.scrollTop         document.all.hiliter.style.pixelBottom = clientRects[n].bottom         document.all.hiliter.style.pixelLeft = hLeft + document.body.scrollLeft         document.all.hiliter.style.pixelWidth = hRight - hLeft         document.all.hiliter.style.visibility = "visible"     } else if (n > 0) {         alert("The content does not have that many lines.")         document.all.hiliter.style.visibility = "hidden"     } } </SCRIPT> </HEAD> <BODY onResize="hilite()"> <H1>getClientRects() and getBoundClientRect() Methods</H1> <HR> <FORM> Choose a line to highlight: <SELECT NAME="choice" onChange="hilite()"> <OPTION VALUE=0> <OPTION VALUE=1>1 <OPTION VALUE=2>2 <OPTION VALUE=3>3 <OPTION VALUE=4>4 <OPTION VALUE=5>5 <OPTION VALUE=6>6 <OPTION VALUE=7>7 <OPTION VALUE=8>8 <OPTION VALUE=9>9 <OPTION VALUE=10>10 <OPTION VALUE=11>11 <OPTION VALUE=12>12 <OPTION VALUE=13>13 <OPTION VALUE=14>14 <OPTION VALUE=15>15 </SELECT><BR> <INPUT NAME="fullWidth" TYPE="checkbox" onClick="hilite()"> Full Width (bounding rectangle) </FORM> <SPAN ID="main"> <P>Lorem ipsum dolor sit amet, consectetaur adipisicing elit, sed do  eiusmod tempor incididunt ut labore et dolore magna aliqua.  Ut enim adminim veniam, quis nostrud exercitation ullamco:</P> <UL> <LI>laboris <LI>nisi <LI>aliquip ex ea commodo  </UL> <P>Duis aute irure dolor in reprehenderit involuptate velit esse  cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat  cupidatat non proident, sunt in culpa qui officia deseruntmollit  anim id est laborum Et harumd und lookum like Greek to me, dereud  facilis est er expedit distinct.</P> </SPAN> <DIV ID="hiliter"  STYLE="position:absolute; background-color:yellow; z-index:-1; visibility:hidden"> </DIV> </BODY> </HTML>