// 事件对象的相关属性
        // e.target   触发事件的标签对象
        //            e.target支持所有标签对象的操作
        // e.target.parentElement   直接父级标签对象
        // e.target.parentNode      直接父级标签对象
        // e.target.tagName         触发事件的标签对象名称  全大写英文字母
        // 点击事件中,e事件对象中存储的坐标信息
        // 键盘事件中,e事件对象中存储的按键信息
        // 点击事件和键盘事件,e事件对象中存储的信息内容是不同的
        // 只能获取鼠标点击的位置坐标,不能设定鼠标位置的坐标
        // offsetX  offsetY
        //     触发事件的标签对象,左上角为坐标原点
        // 在鼠标拖拽时,会有大问题
        //     获取鼠标坐标时,原点,会改变
        //     例如,在整个页面中拖拽div
        //          起始时,坐标原点是 document 文档的左上角
        //          当鼠标经过div时,坐标原点是 div 的左上角
        //          获取的坐标数值不同,会造成 div 闪来闪去  
        // clientX  clientY
        //     视窗窗口,左上角为坐标原点  
        // pageX  pageY
        //     HTML文档,左上角为坐标原点  
        // 当页面没有滚动时,两个坐标数据相同
        // 当页面发生滚动时,两个坐标数据不同
        var oDiv = document.querySelector('div');
        oDiv.addEventListener('click' , function(e){
            e = e || window.event;
            console.log(e);
        })
 
 <style>
        *{
            margin: 0;
            padding: 0;
        }
        body{
            height: 5000px;
        }
        div{
            width: 100px;
            height: 100px;
            background: pink;
            position: fixed;
            top:0;
            left:0;
        }
    </style>
</head>
<body>
    <div></div>
    <script src="./tools.js"></script>
    <script>
        // 通过点击鼠标,控制div的位置
        // 让div位置与鼠标点击位置相同
        // 获取鼠标点击时的坐标,设定为div标签定位的坐标数据
        // 默认执行效果,定位之后,div的左上角与鼠标重合
        
        // 如果需要其他位置与鼠标重合,就需要调整定位的数值
        // 例如: 需要div中心位置与鼠标重合 : 定位数值 - div宽度高度的一半 
        var oDiv = document.querySelector('div');
        // 给 document 整个文档添加点击事件
        document.addEventListener('click' , function(e){
            e = e || window.event;
            // 如果需要div中心与鼠标位置重合
            // 需要获取div的宽度,高度
            // 注意:宽度高度,有px单位,要去掉
            // var h = parseInt(myGetStyle(oDiv , 'height'));
            // var w = parseInt(myGetStyle(oDiv , 'width'));
            // 也可以通过标签占位,获取标签的宽度高度占位
            // offsetHeight   offsetWidth
            // 直接获取数据数值,没有px单位的
            var h = oDiv.offsetHeight;
            var w = oDiv.offsetWidth;
            console.log(h,w);
            // 因为有页面滚动的问题
            // 使用:clientX   和   clientY
            // div中心与鼠标位置重合,需要再减去div宽度高度的一半
            var top = e.clientY - h/2;
            var left = e.clientX - w/2;
            // 设定为 div 的定位数据 , 并且拼接px单位
            oDiv.style.top = top + 'px';
            oDiv.style.left = left + 'px';
        })
    </script>

事件对象的属性 div点击移动事件的更多相关文章

  1. JQuery事件对象的属性和方法

    这是今天的总结,以后学习自己可以当参考书来读读.Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态.事件通常与函数结合使用,函数不会在事件发生前被执行 ...

  2. jQuery事件对象的属性

    注:摘自<锋利的jQuery(第二版)> JQuery在遵循W3C规范的情况下,对事件对象的常用属性进行了封装,使得事件处理在各大浏览器下都可以正常运行而不需要进行浏览器类型判断. 1. ...

  3. jq的事件对象的属性

    1.event.type() 该方法的作用是可以获取到时间的类型 $('a').click(function(){ alert(event.type);//获取事件类型 return  false;/ ...

  4. jQuery 事件对象的属性

    jQuery 在遵循 W3C 规范的情况下,对事件对象的常用属性进行了封装,使得事件处理在各大浏览器下都可以正常运行而不需要进行浏览器类型判断. (1) event.type 该方法的作用是可以获取到 ...

  5. 事件对象的属性,基于jQuery(jquery针对不同浏览器进行了兼容性的封装)

    1. event.type(该方法是获取到事件的类型) $( 'a' ).click( function( event ){ alert( event.type ); //click return f ...

  6. js事件对象

    哎,事件也有对象呦.程序员一直在讲对象对象,那么,过年是不是该带个对象回家呢?好了,既然事件有对象,承认这个事实吧!哈哈,那么,其就有属性,接下来,就放个 例子来讲讲,顺便把常用的属性也添加进去.. ...

  7. jQuery通过event获取点击事件的事件对象

    要想搞明白js的事件机制,必须搞清楚几个概念:事件对象,事件源,还有事件流 事件对象: 当事件发生时会产生事件对象,事件对象的作用是用来记录“事件发生是一些相关的信息.注意事件对象只有在事件发生时才会 ...

  8. JavaScript 中的window.event代表的是事件的状态,jquery事件对象属性,jquery中如何使用event.target

    http://wenda.haosou.com/q/1373868839069215 http://kylines.iteye.com/blog/1660236 http://www.cnblogs. ...

  9. JavaScript的事件对象中的特殊属性和方法(鼠标,键盘)

    鼠标操作导致的事件对象中的特殊属性和方法 鼠标事件是 Web 上面最常用的一类事件,毕竟鼠标还是最主要的定位设备.那么通过事件对象可以获取到鼠标按钮信息和屏幕坐标获取等 鼠标按钮 只有在主鼠标按钮被单 ...

  10. jQuery事件对象event的属性和方法

    事件处理(事件对象.目标元素的获取,事件对象的属性.方法等)在不同浏览器之间存在差异,jQuery在遵循W3C规范的情况下做了封装统一 一.事件对象常用的属性: event.type:获取事件的类型, ...

随机推荐

  1. python flashtext字符串快速替换,自然语言处理加速

    在自然语言处理当中,经常对数据集进行一些数据字符的替换,表情的替换,以便在tokenizer的时候不被识别成[unk],造成信息的缺失 常规方法使用python自带的replace方法实现,但数据量很 ...

  2. 学习C#编程经典书籍

    1.<C# 语言程序设计>(第4版):由微软公司的C#语言团队编写,是学习C#语言的必备经典著作. 2.<C#高级编程>(第9版):由Andrew Troelsen编写,涵盖了 ...

  3. BizWorks助力企业应用的高效开发与复用

    简介: BizWorks作为企业级云原生应用数字工作台,能很好地支撑企业数字中台建设.云原生应用开发.企业资产运营管理等场景.本文不会全面介绍BizWorks平台的能力,而是着重介绍BizWorks在 ...

  4. Redis 数据类型list以及使用场景

    简介: Redis 数据类型list以及使用场景 数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分需要的存储结构:一个存储空间保存多个数据,且通过数据可以体现进入顺序list类型:保存多 ...

  5. 看见云上新力量|专访快准车服CIO牛小虎:全面信息化支持,让车爱上快准

    简介: 从"数字化汽配基础设施的创造者"到"让车爱上快准",快准车服的探索与前行执著而坚定!基于数字化能力,面向3万亿的未来市场,我们拭目以待!--快准车服CI ...

  6. Dubbo-go-Mesh 开启新一代 Go 微服务形态

    ​简介:Proxyless Service Mesh 能力将跟随 Dubbo-go 下一版本发布,稳定的性能需要社区成员们共同的关注与建设.在此基础之上,我们还会进一步探索轻量级 sdk + side ...

  7. Java编程技巧之样板代码

    简介: 在日常编码的过程中,可以总结出很多"样板代码",就像"活字印刷术中的"活字"一样.当我们编写新的代码时,需要用到这些"活字" ...

  8. 八、Dataphin

    Dataphin是阿里巴巴集团OneData数据治理方法论内部实践的云化输出,一站式提供数据采.建.管.用全生命周期的大数据能力,以助力企业显著提升数据治理水平,构建质量可靠.消费便捷.生产安全经济的 ...

  9. 微分流形Loring Tu 习题21.2解答

    今天的作业,随手写到博客吧. \(Proof.\)对于任意的\(p \in M\),有p附近的坐标卡\((U,x^{1},\ldots,x^{n})\), 由引理\(21.4\),$$dx^{1}\w ...

  10. 02. rails安装

    rails安装 ruby 1.8.6 对应的rails是2.3.2 Ruby 1.8.7 或 1.9.2 对应的rails 2.3.x ruby1.9.3,对应的rails是3.2.12, ruby2 ...