兼容性问题

一 js兼容问题

  1. document.body.scrollTop在各大浏览器的兼容问题
  • 完美解决问题的代码
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
  1. 原生ie8不支持console.log,模拟的支持

  2. 阻止事件冒泡以及事件e的获取

function stopBubble(e) {
    if (e && e.stopPropagation){ // 标准写法
    	e.stopPropagation();
    }else{ // ie写法
    	(event || window.event).cancelBubble = true;
    }
}
  1. 获取样式,el.style只可以获取行内样式,需要获取非行内样式
// 兼容获取非行内样式
function getStyle(el, prop) {
    if (el.currentStyle) { // ie
           return el.currentStyle[prop]
    } else { // chrome、ff
                return getComputedStyle(el, null)[prop]; // 第二个参数是伪类元素,当不查询伪类元素的时候可以忽略或者传入null          
    }
 }
 // 如果要查询伪元素,是在第二个参数传入匹配的伪元素的字符串
 getComputedStyle(document.getElementById("one"), '::after').width
  1. 获取dom对象
  • getElementsByClassName ie8不支持
  1. 监听事件
  • ie是attachEvent,其它浏览器是addEventListener
// 封装方法
function addEvent(el, type, fn, bool) { // 添加事件监听,四个参数分别为对象,事件类型,事件处理函数,指定事件是否在捕获或冒泡阶段执行 true为捕获阶段,false为冒泡
    if (el.addEventListener) { // 标准浏览器
          el.addEventListener(type, fn, bool);
    } else { // ie
          el.attachEvent('on' + type, fn);
    }
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值