JavaScript关于事件对象的一些问题

约定不等于承诺〃 2022-06-01 08:08 275阅读 0赞

事件对象概述

当我们触发dom’的某个事件时,会产生一个事件对象event,event里包含了所有关于此事件的信息。所有的浏览器都支持event对象,但是支持的方式有一定差异。

chrome,Firefox,safari等浏览器支持event(带参数,任意参数)

ie678支持event window.event(无参数,内置)

事件对象的获取

火狐,谷歌,event获取是通过,在事件绑定的函数中加入参数,这个参数就是event

例如

box.onclick = function (aaa){ aaa就是event}

ie678中是通过 window.event直接获取

事件对象兼容性写法

既然ie678和主流浏览器有差异,随之带来的问题就是兼容性问题。

处理兼容问题的方法如下

给事件绑定函数中添加参数一般默认都写event(你也可以写其他,最好不要那么做)

事件绑定函数里面使用

var event = event || window.event;

box.onclick = function (event){ var event = event || window.event;}

事件对象的一些比较常用的东西。

重点

pageX 光标相对于该网页的水平位置

pageY 光标相对于该网页的垂直位置

screenX 光标相对于屏幕的水平位置

screenY 光标相对于屏幕的垂直位置

clientX 光标相对于该网页水平位置(当前可见区域)

clientY 光标相对于该网页垂直位置(当前可见区域)

pageY/pageX对不同浏览器有一定的兼容问题。

所以当我们获取的时候需要处理兼容,处理兼容时需要使用到scroll家族的内容,所以封装了一个方法

scroll()方法如下

function scroll() {
return {
“top”: window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop,
“left”: window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft
}
}

pageY/pageX=event.clientY/clientX+scroll().top/scroll().left

发表评论

表情:
评论列表 (有 0 条评论,275人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Javascript事件对象

    1、事件对象 在DOM中发生事件时,所有相关信息都会被收集并存储在一个名为event的对象中。这个对象包含了一些基本信息,比如导致事件的元素、发生的事件类型、可能与特定事

    相关 关于JavaScript一些方法

    今天用了大半天的时间,刷完了fcc中文社区上的js基础算法题,重新再刷这些题目的时候发现,有些函数方法还是掌握不够。就今天的学习记录一下。 1. map()方法

    相关 关于面向对象一些思考

    我们都知道,PHP的特色就是简单、快速、适用,在PHP的世界里,一切都是以解决问题为主,所以呢,很多设计方面的东西,往往被忽视或者说是排斥,虽然说PHP的面向对象这个思想被提出