李权20200914
BOM:
window对象有两个含义:
1.作为JavaScript操作BOM的一个接口
2.又是ECMAScript定义的全局变量,在JavaScript中定义的任何一个对象,变量,函数,都以window作为全局变量,因此有权访问parseInt等方法
注意:定义的全局变量不能用delete删除,直接在window定义的变量可以删除
注意2:尝试访问未声明的变量会抛出错误,但是通过查询window对象,可以知道某个可能未声明的变量是否存在
let c = window.b;
console.log(c); //undefined
let a = b;
console.log(a);//Uncaught ReferenceError: b is not defined
js事件 -- 鼠标滚轮事件
鼠标滚轮事件在 IE和chrome中监听的事件是 onmousewheel,但是火狐(firefox)不兼容,它监听的鼠标滚轮事件是DOMMmouseScroll,而且必须用addEventListener监听
事件监听事件的的兼容:
IE是AttachEvent 事件要加on
chrome是谷歌事件,addEventListener 事件不加on
所以鼠标滚轮事件 的火狐和IE和Chrome的写法
chrome: addEventListener ommousewheel
IE :AttachEvent onmousewheel
firefox: addEventListener DOMMouseScroll
所以浏览器兼容我们得写一个函数封装
//封装的鼠标滚轮事件的浏览器兼容
function mousewheel(obj,event,fn){
//obj是事件对象
//event是事件类型
//fn 是回调函数
//判断 是否支持attachEvent 如果不支持使用addEventListener
if(obj.attachEvent){
obj.attachEvent('on'+event,fn)
}else{
obj.addEventListener(event,fn)
}
}
mousewheel(window,'mousewheel',fn);
mousewheel(window,'DOMMouseScroll',fn)
function fn(){
alert(123)
}
在chrome和IE中判断向上滚还是向下滚用的API 是e.wheelDelta
但是在firefox是e.detail,
注意 :e.wheelDelta 向上滚为正值,向下是负值,e.detail向上为负值,向下为正值
近期评论