| 
     
 
/* 
JavaScript Bible, Fourth Edition 
by Danny Goodman  
 
John Wiley & Sons CopyRight 2001 
*/ 
 
<HTML> 
<HEAD> 
<TITLE>Layer Resizing</TITLE> 
<SCRIPT LANGUAGE="JavaScript"> 
var engaged = false 
var offsetX = 0 
var offsetY = 0 
function resizeIt(evt) { 
    evt = (evt) ? evt : (window.event) ? window.event : "" 
    var targElem = (evt.target) ? evt.target : evt.srcElement 
    if (targElem.className == "draggable") { 
        if (engaged) { 
            if (evt.pageX) { 
                targElem.style.width = (evt.pageX - targElem.offsetLeft - offsetX) + "px" 
                targElem.style.height = (evt.pageY - targElem.offsetTop - offsetY) + "px" 
 
} else { 
                var elemWidth = evt.clientX - targElem.offsetLeft - offsetX -  
                    (parseInt(targElem.style.left) - parseInt(targElem.offsetLeft)) 
                var elemHeight = evt.clientY - targElem.offsetTop - offsetY -  
                    (parseInt(targElem.style.top) - parseInt(targElem.offsetTop)) 
                targElem.style.width = elemWidth + "px" 
                targElem.style.height = elemHeight + "px" 
            } 
        } 
    } 
} 
function engage(evt) { 
    evt = (evt) ? evt : (window.event) ? window.event : "" 
    var targElem = (evt.target) ? evt.target : evt.srcElement 
    if (targElem.className == "draggable") { 
       while (targElem.id != "myLayer" && targElem.parentNode) { 
           targElem = targElem.parentNode 
        } 
        if (targElem.id == "myLayer") { 
            if (evt.pageX && (evt.pageX > ((parseInt(targElem.style.width) - 20) +  
            targElem.offsetLeft)) && (evt.pageY >  
            ((parseInt(targElem.style.height) - 20) + targElem.offsetTop))) { 
                offsetX = evt.pageX - parseInt(targElem.style.width) - targElem.offsetLeft 
                offsetY = evt.pageY - parseInt(targElem.style.height) - targElem.offsetTop 
                engaged = true 
            } else if ((evt.offsetX > parseInt(targElem.style.width) - 20) && (evt.offsetY >  
                parseInt(targElem.style.height) - 20)) { 
                offsetX = evt.offsetX - parseInt(targElem.style.width) - document.body.scrollLeft 
                offsetY = evt.offsetY - parseInt(targElem.style.height) - document.body.scrollTop 
                engaged = true 
                if (navigator.userAgent.indexOf("Win") == -1) { 
                    offsetX += document.body.scrollLeft 
                    offsetY += document.body.scrollTop 
                   } 
            } 
            return false 
        } 
    } 
} 
function release(evt) { 
    evt = (evt) ? evt : (window.event) ? window.event : "" 
    var targElem = (evt.target) ? evt.target : evt.srcElement 
    if (targElem.className == "draggable") { 
        while (targElem.id != "myLayer" && targElem.parentNode) { 
            targElem = targElem.parentNode 
        } 
        if (engaged && targElem.id == "myLayer") { 
            engaged = false 
        } 
    } 
} 
</SCRIPT> 
</HEAD> 
<BODY> 
<H1>Resizing a Layer (W3C)</H1> 
<HR> 
<DIV ID="myLayer" CLASS="draggable" STYLE="position:absolute; top:170; left:100; 
 width:300; height:190; background-color:lightblue"> 
<SPAN>Here is some content inside the layer. See what happens to it as you 
 resize the layer via the bottom-right 20-pixel handle.</SPAN> 
</DIV> 
<SCRIPT LANGUAGE="JavaScript"> 
document.onmousedown = engage 
document.onmouseup = release 
document.onmousemove = resizeIt 
document.onmouseout = release 
</SCRIPT> 
</BODY> 
</HTML> 
 
 
            
        
    
    |