-
页面滚动的兼容方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<style>
body {
height: 3000px;
}
</style>
</head>
<body>
</body>
</html>
<script>
window.onscroll = function () {
document.title = scroll().top;
}
/*正常浏览器(除了ie678之外的浏览器)
window.pageYOffset
已经声明DTD(标准模式)
document.documentElement.scrollTop
未声明 DTD(怪异模式)
document.body.scrollTop*/
//这个方法可以给调用者提供 页面被卷去的top值和left值
function scroll() {
if (window.pageYOffset != null) {
return {
"top": window.pageYOffset,
"left": window.pageXOffset
};
} else if (document.compatMode == "CSS1Compat") {
//说明是标准模式 有DTD
return {
"top": document.documentElement.scrollTop,
"left": document.documentElement.scrollLeft
};
} else {
return {
"top": document.body.scrollTop,
"left": document.body.scrollLeft
};
}
}
</script>
-
网页可视区client方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
</html>
<script>
window.onresize = function () {
document.title = client().width;
}
/*正常浏览器(包括IE9+)
window.innerWidth
标准模式(包括IE9-)
document.documentElement.clientWidth
怪异模式
document.body.clientWidth*/
//返回一个对象 如果用可视区的宽度 就.width 如果用高度就 .height
function client() {
if (window.innerWidth != null) {
return {
"width": window.innerWidth,
"height": window.innerHeight
}
} else if (document.compatMode == "CSS1Compat") {
//标准模式
return {
"width": document.documentElement.clientWidth,
"height": document.documentElement.clientHeight
}
} else {
return {
"width": document.body.clientWidth,
"height": document.body.clientHeight
}
}
}
</script>
-
兼容ie6、7、8获取鼠标的坐标方法
function (event) { var event = event || window.event; //event.clientX//相对于客户端的位置 //event.pageX//相对于页面的位置 //event.screenX//相对于屏幕的位置 var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft; var pageY = event.pageY || event.clientY + document.documentElement.scrollTop; }
-
阻止事件冒泡
var event = event || window.event; if (event && event.stopPropagation) {//短路表达式 //说明是正常浏览器 event.stopPropagation(); } else { //兼容ie678 event.cancelBubble = true; }
-
事件目标兼容性
targetId(排除事件触发案例)
返回当前事件对象的id
火狐谷歌等 event.target.id
IE678 event.srcElement.id
var targetId = event.target ? event.target.id : event.srcElement.id;