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

鼠标位置相关属性

时间:2015-09-18 15:14:41      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

 

 

 1、offsetX,offsetY:

是event的属性,非DOM元素的属性

含义:设置或者是得到鼠标相对于目标事件的父元素的位置,从父元素的边框位置计算起。

IE中的属性,  经测试新版的chrome 、FF都支持(测试环境 chrome43 FF34)

2、pageX,pageY

 是event的属性,非DOM元素的属性

含义:相对于页面的位置

主流浏览器如FF chrome支持    ie8及以下不支持 (但是IE中有一个替补属性 e.x,e.y     和pageX、Y是一样的效果)

3、offsetLeft、offsetTop

 offsetTop、left:是DOM元素的属性,都支持 但浏览器解析不一样
 在IE7及以下:直接相对于父元素
 IE8以及其他浏览器:该属性表示的是DOM对象在“该DOM对象的层级关系中离该对象最近的,设置了position的父对象”中的位置,如果没有找到,则是相对于根元素 html的位置(而不是body)

4、浏览器默认的margin padding值
 关于body的padding margin:

主流浏览器和IE8: margin:8px
 ie7以及以下:margin:15px padding:medium

5、offsetParent

 含义: 向上寻找父元素,且父元素使用了定位方式。如果向上找不到定位的父元素,则返回body

否则返回这个定位的父元素。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>mouse position</title>
    <style>
    /* body{margin:0;padding:0;} */
    #posDiv{
        /* position: relative;  */
        width:800px;
        height:500px;
        border:1px solid red;

        }
        #noposDiv{
            width:100px;
            height: 100px;
            border:10px solid green;
            margin-left:100px;
            
        }
        

    </style>
</head>
<body>

   <div id="posDiv">
          <div id="noposDiv">
          </div>
   </div>

   <script>
   var offParent = document.getElementById(noposDiv).offsetParent;
   console.log(offParent,offParent);

   /**
    * offsetX,offsetY:是event的属性,IE 和新版的chrome 、FF都支持
    * pageX : ie8及以下不支持,其他主流浏览器FF chrome支持
    *
    * offsetTop、left:是DOM元素的属性,都支持  但浏览器解析不一样
    *     在IE7及以下:直接相对于父元素
    *      IE8以及其他浏览器:该属性表示的是DOM对象在“该DOM对象的层级关系中离该对象最近的,设置了position的父对象”中的位置,如果没有找到,则是相对于根元素 html的位置
    *
    *
    * 关于body的padding margin:  主流浏览器和IE8: margin:8px  
    *                             ie7以及以下:margin:15px padding:medium
    *
    * offsetParent:  向上寻找父元素,且父元素使用了定位方式。如果向上找不到定位的父元素,则返回body
    *                 否则返回这个定位的父元素。
    * @type {[type]}
    */
   var noposDiv = document.getElementById(noposDiv);
   if(noposDiv.addEventListener){
           noposDiv.addEventListener(click,function (e){
            
               var evtx = e.offsetX;
               var evty = e.offsetY;
               var pagex = e.pageX;
               var pagey = e.pageY;
               var offLeft = noposDiv.offsetLeft;
               var offTop = noposDiv.offsetTop;
               var x = e.x;
               var y = e.y;

               console.log(offsetx y,evtx,evty);
               console.log(pagex y,pagex,pagey);
               console.log(div元素的属性 offLeft ,offLeft,offTop);
               console.log(e.x,e.y,e.x,e.y);   ///在chrome中 与pageX一样;  FireFox不支持该属性

           },false);
   }else if(noposDiv.attachEvent){
        noposDiv.attachEvent(onclick,function (e){
                var evtx = e.offsetX;
               var evty = e.offsetY;
               var pagex = e.pageX;
               var pagey = e.pageY;
               var offLeft = noposDiv.offsetLeft;
               var offTop = noposDiv.offsetTop;
               var x = e.x;
               var y = e.y;

               console.log(offsetx y,evtx,evty);
               console.log(pagex y,pagex,pagey);
               console.log(div元素的属性 offLeft ,offLeft,offTop);
               console.log(e.x,e.y,e.x,e.y);

        });

   }


   </script>
    
</body>
</html>

 

鼠标位置相关属性

标签:

原文地址:http://www.cnblogs.com/lydialee/p/4819093.html

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