今天在做一个jq动画效果的发现在在ie系列浏览器下是失效的:
动画效果是想通过jq来操作一个背景的background-position的数值来实现动画:在ie下失效该怎么解决呢:
原因和简单
ie的浏览器都不支持background-position这个属性,支持的背景定位属性是
background-position-x 和
background-position-y来获取容器的x和y的数值。
设置对于的是
backgroundPositionX 和 backgroundPositionY
由此我们来做个判断不就行了
if(jq.browser.msie){
//如果当前的浏览器是ie浏览器
jq(this).parent().stop().animate({
backgroundPosition
X:num+"px"},500);
}else{
jq(this).parent().stop().animate({
backgroundPosition:num+"px"},500);
}
上面我们接触到了一个$.browser 。
jq下的$.browser 是用来判断当前使用的浏览器的,我们来详细介绍一下
使用方法:
$.browser.['浏览器关键字']
$.browser.['浏览器关键字']
$(function(){
if(
$.browser.msie) {
alert("this is msie");
}
elseif(
$.browser.safari)
{
alert("this is safari!");
}
elseif(
$.browser.mozilla)
{
alert("this is mozilla!");
}
elseif(
$.browser.opera) {
alert("this is opera");
}
else{
alert("i don't konw!");
}
jq判断ie版本
$.browser.version== "6.0"
$.browser.version== "7.0"
如果不考虑向后兼容性,又不想为了判断各浏览器类型而导入jQuery
判断IE最简单的方法是
判断IE最简单的方法是
if(document.all){ alert("IE6")}
如果是为了只是为了判断IE的版本还是推荐用IE的条件表达式来书写JS
<!--[ifIE]>
<scripttype="text/javascript">
alert("ie")
</script>
<![endif]-->
<!--[if IE6]>
<scripttype="text/javascript">
alert("ie6")
</script>
<![endif]-->
<!--[if IE7]>
<scripttype="text/javascript">
alert("ie7")
</script>
<![endif]-->