有时候我们设置定时器的时候,需要让div移动0.2px/s,当然在ie8+以外的浏览器这样做完全没问题,那么如何兼容ie8-(小于1px会向下取整为0)的浏览器呢?
1 功能检测(判断某个对象只有ie8支持,针对该浏览器做相应处理)
2 浏览器检测(判断浏览器的类型,针对ie8做相应处理)
//判断浏览器
function getInternetExplorerVersion()
// Returns the version of Windows Internet Explorer or a -1
// (indicating the use of another browser).
{
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer') {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null) rv = parseFloat(RegExp.$1);
}
return rv;
}
3 声明一个变量用来记录0.2累加,设置定时器(推荐,不用针对某个浏览器做特殊处理)
如下:
<div id="dv" style="border:solid 1px #000"></div>
<div style="border:solid 1px #000;width:110px;margin-top:10px"></div>
<script>
window.onload = function () {
var tb = document.getElementById('dv'), w = 100;
tb.style.width = w + 'px';
setInterval(function () {
w += 0.5;
tb.style.width = w + 'px';
}, 1000)
}
</script>