五、默认事件
标准
e.prevenDefault() prevent /prɪ'vent/ 阻止,防止
低版本IE
e.returnValue = false;
右键菜单 :
oncontextmenu
标准:解决办法return false
(阻止默认事件) (只能阻止dom0
级别)
非标准ie
:全局捕获
1、
onselectstart="return false"
处理文字选中
解决:文字选中的问题
document.onselectstart = function (e) {
e = e || window.event;
if (e.preventDefault) { // 存在这个函数,主流
e.preventDefault();
} else { // 不存在低版本IE
e.returnValue = false;
}
// 此方法也可以阻止默认文字默认选中行为
// return false;
}
2、添加
ondragstart="return false"
处理图片拖动
标准下阻止默认事件,不可以拖拽图片啦
document.ondragstart = function (e) {
e = e || window.event;
if (e.preventDefault) { // 存在这个函数,主流
e.preventDefault();
} else { // 不存在低版本IE
e.returnValue = false;
}
// 此方法也可以阻止默认文字默认选中行为
// return false;
}
兼容 阻止默认行为
document.oncontextmenu = function (e) {
e = e || window.event;
if (e.preventDefault) { // 存在这个函数,主流
e.preventDefault();
} else { // 不存在低版本IE
e.returnValue = false;
}
console.log('右键触发')
// return false;
}
六、鼠标滚轮事件
主流浏览器 滚轮事件
Ie / chrome : onmousewheel
滚动方向
event.wheelDelta
/'dɛltə/
向上滚动:120
向下滚动:-120
火狐浏览器 滚轮事件
firefox : DOMMouseScroll
必须用addEventListener()
添加
滚动方向
fire: event.detail
/dɪˈtel/
细节
向上滚动:-3
向下滚动:3
滚轮属性:
event.wheelDelta \ event.detail
兼容:
//兼容ie chrome
obj.onmousewheel = handle;
//兼容firefox
obj.addEventListener ? obj.addEventListener('DOMMouseScroll', handle, boolean) : false;
//滚动函数event对象处理
function handle(e) {
e = e || window.event;
e.wheel = e.wheelDelta ? e.wheelDelta : -e.detail * 40;
}
阻止默认事件:
标准:event.preventDefault()
非标准:event.returnValue = false;
return false
阻止的是obj.on
事件名称 =fn
所触发的默认行为
addEventListener
绑定的事件需要通过event
下面的event.preventDefault();
detachEvent
绑定的事件需要通过event
下面的event.returnValue=false;
鼠标滚轮与自定义滚动条结合
七、全兼容添加/删除事件 封装
addEvent(document, 'mousewheel', function() {
console.log(111132)
})
//注册事件
function addEvent(obj, type, fn, boolean) {
boolean = boolean || false;//处理捕获冒泡
obj[type + fn.name] = handle;//添加方法
obj.addEventListener ? obj.addEventListener(type, obj[type + fn.name], boolean) : obj.attachEvent('on' + type, obj[type + fn.name]);
//滚轮事件
if (type == 'mousewheel') {
//obj['on'+type]= handle;//chrome 及ie
obj.addEventListener ? obj.addEventListener('DOMMouseScroll', obj[type + fn.name], boolean) : '';//兼容火狐
}
//处理event对象
function handle(e) {
e = e || window.event;
e.wheel = e.wheelDelta ? e.wheelDelta : e.detail * (-40);//处理滚轮方向
fn.call(obj, e);
e.preventDefault ? e.preventDefault() : e.returnValue = false;
}
}
function removeEvent(obj, type, fn, boolean) {
boolean = boolean || false;//处理捕获冒泡
obj.removeEventListener ? obj.removeEventListener(type, obj[type + fn.name], boolean) : obj.detachEvent('on' + type, obj[type + fn.name]);
//滚轮事件
if (type == 'mousewheel') {
obj.removeEventListener ? obj.removeEventListener('DOMMouseScroll', obj[type + fn.name], boolean) : '';//兼容火狐
}
}
网友评论