第三章地一二节代码问题

来源:4-2 [DOM事件] QQ面板拖拽效果(下)

慕仰0443758

2017-02-15 22:06


老是显示Cannot set property 'onmousedown' of undefined,怎么感觉没问题呀,fnDown是正确写的呀

    at drag 

window.onload=drag;

function drag(){

var oTitle=getByClass('login_logo_webqq','loginPanel')[0];


    //拖曳

oTitle.onmousedown=fnDown;


    //关闭

    var oClose=document.getElementById('ui_boxyClose');

    oClose.onclick=function(){

        document.getElementById('loginPanel').style.display='none';

    }

}


function fnDown(event){

    event=event||window.event;

var oDrag=document.getElementById('loginPanel');

    var disX=event.clientX-oDrag.offsetleft, 

        disY=event.clientY-oDrag.offsettop;

 

        //移动

        document.onmousemove=function(event){

            fnMove(event,disX,disY);

        }

        //释放

        document.onmouseup=function(){

            document.onmousemove=null;

            document.onmouseup=null;

        }

}


function fnMove(e,posX,posY){

    var oDrag=document.getElementById('loginPanel');

    var l=e.clientX-posX,

        t=e.clientY-posY;

    var winW=document.documentElement.clientWidth||document.body.clientWidth,

        winH=document.documentElement.clientHeight||document.body.clientHeight;

    

    var maxW=winW-oDrag.offsetleft;

    var maxH=winH-oDrag.offsettop;


    if(l<0){

       l=0;

    }else if(l>maxW){

       l=maxW;

    }

    

    if(t<0){

        t=0;

    }else if(t>maxH){

        t=maxH;

    }


    oDrag.style.left=l+'px';

    oDrag.style.top=t+'px';


}


写回答 关注

3回答

  • 慕仰0443758
    2017-02-17 21:40:00

    好的,谢谢你

  • Close_0
    2017-02-17 16:19:09

    var  disX=event.clientX-oDrag.offsetLeft,</span><br><span>   disY=event.clientY-oDrag.offsetTop;<br>  //此处offsetLeft,offsetTop ,第三个单词首字母要大写。

  • Close_0
    2017-02-17 16:17:43
     var  disX=event.clientX-oDrag.offsetLeft,
       disY=event.clientY-oDrag.offsetTop;
      //此处offsetLeft,offsetTop ,第三个单词首字母要大写。

DOM事件探秘

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

99532 学习 · 1298 问题

查看课程

相似问题