JavaScript常见事件类型
UI (User Interface) 事件,当⽤户与页⾯上的元素交互时触发
Load事件:当页⾯完全加载后,就会触发window上的load事件。
Unload事件:在⽂档被完全卸载后触发。只要⽤户从⼀个页⾯切换到另⼀个页⾯,就会触发。
Resize事件:当浏览器调整到⼀个新的⾼度或宽度时,就会触发resize事件。注意不要在这个事件中加⼊计算逻辑,避免性能问题。
EventUtil.addHandler(window, "resize", function (event) {
//防抖函数
//每次调⽤函数都会清除之前的计数器,并重新计数,计数完成时,执⾏操作。
var timer;
return function () {
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(function () { //setTimeout返回唯⼀标识符,可以使⽤它来取消计数器
console.log("123");
},500);
}
}());//此处的双括号表⽰,⽴即调⽤返回值
Scroll事件:当⽤户滚动带有流动条的元素中的内容时,在该元素上⾯触发。
EventUtil.addHandler(window, "scroll", function (event) {
//函数节流
var timer;blur事件
return function () {
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(function () { //setTimeout返回唯⼀标识符,可以使⽤它来取消计数器
if (documentpatMode == "CSS1Compat") {
//标准模式
console.log("Left:" + document.documentElement.scrollLeft);
console.log("Top:" + document.documentElement.scrollTop);
}
else {
/
/混杂模式
console.log("Left:" + document.body.scrollLeft);
console.log("Top:" + document.body.scrollTop);
}
}, 500);
}
}());
焦点事件,在页⾯获得或失去焦点时触发
Blur事件:在元素失去焦点时触发。这个事件不会冒泡;所有浏览器都⽀持它;
Focus事件:在元素获得焦点时触发。这个事件不会冒泡,所有浏览器都⽀持它;
Focusin事件:在元素获得焦点时触发。 这个事件与HTML事件focus等价,但它冒泡,⽀持这个事件的浏览器有IE5+ safari5.1+ Opera11.5+ 和 Chrome;
Focusout事件: 在元素获得失去时触发。 这个事件是HTML事件blur的通⽤版本,,⽀持这个事件的浏览器有IE5+ safari5.1+ Opera11.5+ 和 Chrome;
⿏标与滚轮事件
Click事件:在⽤户单机⿏标左键或按下回车键时触发。
DbClick事件:⽤户双击⿏标左键时触发。
MouseDown事件:在⽤户按下⿏标任意按钮时触发。
MouseEnter事件:⿏标从外部⾸次移⼊到元素范围内触发。
MouseLeave事件:⿏标移出元素范围之外触发。
MouseMove事件:当⿏标指针在元素内部移动时重复触发。
MouseOut事件:在⿏标指针位于⼀个元素上⽅,然后⽤户将其移⼊到另⼀个元素时触发。
MouseOver事件:在⿏标指针位于⼀个元素外部,然后⽤户将其⾸次移⼊到另⼀个元素边界之内时触发。
MouseUp:在⽤户释放⿏标指针时触发。
⼏个⿏标坐标位置:
1.客户区坐标位置
⿏标事件都是在浏览器视⼝中的特定位置上发⽣的。这个位置保存在事件对象的clientX和clientY属性中。
2.页⾯坐标位置
pageX和pageY能告诉你事件是在页⾯中什么位置发⽣的。换句话说,这两个属性表⽰光标在页⾯中的位置,因此坐标是从页⾯本⾝⽽不是视⼝左边或顶边计算的。
在页⾯没有滚动的情况下,pageX和pageY和clientX和clientY是相等的。
IE8及更早的版本不⽀持页⾯坐标位置,不过可以使⽤客户区坐标位置和滚动信息计算出来。
EventUtil.ElementById("div1"), "click", function (event) {
//兼容IE8及之前版本
event = Event(event);
var pageX = event.pageX,
pageY = event.pageY;
if (pageX === undefined) {
pageX = event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft);
}
if (pageY === undefined) {
pageY = event.clientY + (document.body.scrollTop || document.documentElement.scrollTop);
}
//console.log("pageX:" + pageX);
//console.log("pageY:" + pageY);
});
3.屏幕坐标位置
screenX和screenY属性可以确定⿏标事件发⽣时⿏标指针相对于整个屏幕的坐标信息。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论