兼容1

兼容:
1、两个都是属性,使用逻辑或 || 做兼容;
2、如果有一个是方法,使用条件判断做兼容;(一般用三元)
3、封装函数。




window.onscroll:为窗口添加滚动条事件
    window.οnscrοll=function(){};
    注意在获取滚动条距离的时候
    谷歌不识别document.documentElement.scrollTop,必须要加上


document.body.scrollTop;即
    var scrollTop = document.documentElement.scrollTop ||


document.body.scrollTop;
    这样才能兼容各个浏览器!




class(类名):不能直接对象.class,因为class是保留字,不能用,所以要用对


象.className
如果要用getAttribute("属性名")来获取属性值来获取class要做兼容
oDiv.getAttribute("class") == null ? oDiv.getAttribute


("className") : oDiv.getAttribute("class");
    //oDiv.getAttribute("class")--IE7及以下为null
    //oDiv.getAttributr("className")--IE8及以上以及谷歌火狐为null
可以直接 oDiv.className 来获取。






获取非行内样式:
属性:var width = oDiv.currentStyle["width"]; //IE
方法:var width = getComputedStyle(oDiv,1)["width"]; //非IE
function getStyle(obj,attr){
return obj.currentStyle ? obj.currentStyle[attr] : 


getComputedStyle(obj)[attr]; 
}
//这里注意:判断的话,只能把currentStyle放在前面;因为currentStyle是属性,


没有是undefined
//而getComputedStyle是方法,没有会报错,所以不能放在前面判断;






获取事件:
1、通过触发事件给事件处理函数传递的第一个参数(标准);(不兼容IE8及以下跟谷


歌早期版本)
2、通过内置的全局对象:window.event 来获取事件对象(只兼容IE9以下及谷歌早期


版本)
获取事件对象的兼容:
document.onclick = function(evt){
evt = evt || window.event;
for(var i in evt){
document.write(i + "<br />");
}
}








event.button:获取鼠标的按键值
火狐/谷歌:左键:0;右键:2;中间:1;
IE早期版本:左键:1;右键:2;中间:4。
兼容:
function getButton(evt){
    var e = evt || window.evnet; //事件兼容
    if(evt){
        return e.button;
    }else{
        switch(e.button){
   case 1 : return 0;
   case 4 : return 1;
   case 2 : return 2;
}
    }
}



键盘事件:
onkeydown/onkeyup:
    keyCode:返回大写字母的ASCII值,不能返回小写字母的ASCII码值;
onkeypress://键盘经过
    keyCode:火狐:不支持控制键,所有字母数字都返回0;
    IE、谷歌:不支持控制键,可以返回字母的大小写ASCII码值,也可以


返回数字的ASCII码值;
    charCode:火狐、谷歌:不支持控制键,可以返回大小写字母以及数字的ASCII码


值;
     IE:不支持控制键,其他返回undefined;
    whitch:火狐、谷歌:不支持控制键,可以返回大小写字母以及数字的ASCII码值



     IE:不支持控制键,其他返回undefined;
键盘经过事件的兼容:
document.onkeydown = function(evt){
    evt = evt || window.event;
    var k = evt.keyCode || evt.charCode || evt.which;
    alert("按下键的ASCII码值为:" + k);
}






事件冒泡:由子节点依次向父节点,一直到祖先节点传递事件,这个过程,称为事件冒泡,浏览器默认启动;
阻止事件冒泡的方法:
1、event.stopPropagation() //标准
2、event.cancelBubble = true; //IE
兼容:
evt.stopPropagation ? evt.stopPropagation() : evt.cancelBubble = true;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值