事件对象(鼠标键盘)

Posted cnlisiyiii-stu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事件对象(鼠标键盘)相关的知识,希望对你有一定的参考价值。

事件对象

在事件触发后或在事件处理程序中,(函数体)所获取并操作的对象。


 

1. 获取事件对象

语法:事件源.事件类型 = function(e){}

形参 e(可以是任意字母)就是事件对象。执行函数(即事件触发后)的时候,浏览器会把事件对象交给形参e。

1 <script>
2         document.onclick = function() {
3             //浏览器会默认给事件对象一些属性
4             console.log(e);
5             //从对象中拿东西。X坐标和Y坐标
6             console.log(e.clientX,e.clientY);
7         }
8 </script>

 

2. 鼠标事件对象相关属性

1)鼠标事件类型:

  • onclick
  • onmouseenter
  • onmouseleave
  • onmousemove 鼠标移动事件
  • onmousedown 鼠标按键按下事件
  • onmouseup  鼠标按钮弹起事件

2)鼠标事件对象相关属性:(获取鼠标位置)

 1 <body>
 2     <div></div>
 3     <script>
 4         var div = document.querySelector(div);
 5         div.onclick = function(e) {
 6             console.log(相对于浏览器当前可视页面的位置:, e.clientX, e.clientY);
 7             console.log(相对于浏览器整个页面的位置:, e.pageX, e.pageY);
 8             console.log(相对于当前元素的位置:, e.offsetX, e.offsetY);
 9         };
10     </script>
11 </body>

 

3. 拖拽案例

 1 <body>
 2     <div></div>
 3     <script>
 4         var login = document.querySelector(.login);
 5         var tip = document.querySelector(.tip);
 6         tip.onmousedown = function(e) {
 7             var x = e.offsetX;
 8             var y = e.offsetY;
 9             document.onmousemove = function (e) {
10                 login.style.left = e.clientX - x + px;
11                 login.style.top = e.clientY - y + px;
12             }
13         };
14         tip.onmouseup = function() {
15             document.onmousemove = null; //解绑
16         }
17     </script>
18 </body>

 

4. 键盘事件相关属性

1)键盘事件类型

  • onkeydown    键盘按下事件
  • onkeyup      键盘弹起事件

一般给 document 绑定键盘事件。

2)键盘事件对象:(区分键盘按下了哪个键)

  • 事件对象.keyCode    获取键盘按键对应的键码值
  • 事件对象.altKey      表示alt键是否按下,返回布尔值。
  • 事件对象.shiftKey    表示shift键是否按下,返回布尔值。
  • 事件对象.ctrlKey    表示ctrl键是否按下,返回布尔值。(true按下,false没有按下)
1 <script>
2         document.onkeydown = function(e) {
3             // console.log(e.keyCode); //获得键码值
4             var num = e.keyCode;
5             if(e.ctrlKey && e.keyCode==67) { //ctrlKey默认为ture
6                 alert(请登陆!);
7             }
8         };
9 </script>

 

以上是关于事件对象(鼠标键盘)的主要内容,如果未能解决你的问题,请参考以下文章

时间对象,键盘事件,鼠标跟随

事件注册 DOM事件流 事件对象(常用属性,方法) 事件委派(鼠标,键盘事件对象)

DOM 基础事件(鼠标、键盘)

DOM事件

鼠标键盘事件对象常用属性

JavaScript事件进阶