码迷,mamicode.com
首页 > 其他好文 > 详细

dom03

时间:2015-01-13 19:37:02      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

鼠标事件:

键盘事件:

 

//通过class获取元素,封装一个通过class获取元素的方法
//IE10以下不支持document.getElementByClass()
function getByClass(className,parent){//必须的元素(前面),可选的元素
    var oParent=parent?document.getElementById(parent):document,//如果有父元素传递过来,不传递父元素对象,而是传父元素上的ID;如果没传父元素就用document
        eles=[],
        elements=oParent.getElementsByTagName(‘*‘);//获取所有元素
    for(var i=0,l=elements.length;i<l;i++){//遍历所有元素,可以同时初始化多个变量
        if(elements[i].className==className){//等于传过来的className
            eles.push(elements[i]);
        }
    }
    return eles;
}
window.onload=drag;
function drag(){
    var oTitle=getByClass(‘login_logo_webqq‘,‘loginPanel‘)[0];//数组中第一个元素;当前元素,父元素
    //拖曳的操作
    oTitle.onmousedown=fnDown;
    }
//鼠标事件都是在浏览器窗口中的特定位置上发生的。
//这个位置信息保存在事件的clientX和clientY属性中
//所有浏览器都支持这两个属性
//他们的值表示事件发生时鼠标指针在视口中的水平和垂直坐标。不包括页面滚动的距离。
function fnDown(event){
    var oDrag=document.getElementById(‘loginPanel‘);
    // document.onmousemove=function(event){//变量event接收事件对象
    //     event=event||window.event;//非IE 和IE浏览器对象不一样
    //     //document.title=event.clientX+‘,‘+event.clientY;
    //     oDrag.style.left=event.clientX+‘px‘;
    //     oDrag.style.top=event.clientY+‘px‘;
    //光标按下时光标和面板之间的距离
    disX=event.clientX-oDrag.offsetLeft,
    disY=event.clientY-oDrag.offsetTop;
    //移动
    document.onmousemove=function(event){
        event=event||window.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,
        winW=document.documentElement.clientWidth || document.body.clientWidth,
        winH=document.documentElement.clientHeight||document.body.clientHeight,
        maxW=winW-oDrag.offsetWidth,
        maxH=winH-oDrag.offsetHeight;
        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‘;
    document.title=l;
}

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>Document</title>
    <style>
        .login_logo_webqq{background-color: white; height: 8px; width: auto;}
        .loginPanel{position: absolute;width: 80px; height: 40px; background-color: blue; border:1px solid blue;border-radius: 5px;}
    </style>
    <script src="drag.js"></script>
</head>
<body>
    <div class=‘div‘>
        <div class=‘loginPanel‘  id=‘loginPanel‘>
            <div class=‘login_logo_webqq‘></div>
        </div>
    </div>
</body>
</html>

 

dom03

标签:

原文地址:http://www.cnblogs.com/xl900912/p/4221997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!