21,拖拽带框(练)

拖拽带框:先在鼠标点击的div位置创建并拖出一个div框,当鼠标抬起时,div跑到div框所在的位置,鼠标抬起删除div框;

var oDiv2=document.createElement('div');//创建div框;

oDiv2.className='div2';//给div框添加class;

document.body.appendChild(oDiv2);//添加到父元素;

document.body.removeChild(oDiv2);//删除div框;

<script>
window.onload=function ()
{
    var oDiv=document.getElementById('div1');
    
    var disX=0;
    var disY=0;
    
    oDiv.onmousedown=function (ev)
    {
        var oEvent=ev||event;
        
        disX=oEvent.clientX-oDiv.offsetLeft;
        disY=oEvent.clientY-oDiv.offsetTop;
        
        var oBox=document.createElement('div');
        
        oBox.className='box';
        oBox.style.width=oDiv.offsetWidth-2+'px';
        oBox.style.height=oDiv.offsetHeight-2+'px';
        
        oBox.style.left=oDiv.offsetLeft+'px';
        oBox.style.top=oDiv.offsetTop+'px';
        
        document.body.appendChild(oBox);
        
        document.onmousemove=function (ev)
        {
            var oEvent=ev||event;
            var l=oEvent.clientX-disX;
            var t=oEvent.clientY-disY;
            
            oBox.style.left=l+'px';
            oBox.style.top=t+'px';
        };
        
        document.onmouseup=function ()
        {
            document.onmousemove=null;
            document.onmouseup=null;
            
            oDiv.style.left=oBox.offsetLeft+'px';
            oDiv.style.top=oBox.offsetTop+'px';
            
            document.body.removeChild(oBox);
        };
        
        return false;    //chrome、ff、IE9
    };
};
</script>

 css:

<style>
#div1 {width:100px; height:100px; background:yellow; position:absolute;}
.box {border:1px dashed black; position:absolute;}
</style>

 

 

posted @ 2013-07-08 17:26  猫多多  阅读(299)  评论(0编辑  收藏  举报