query 操作和获取和操作background-position在IE上失效的有关问题
今天在做一个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({backgroundPositionX:num+"px"},500);
}else{
jq(this).parent().stop().animate({backgroundPosition:num+"px"},500);
}
上面我们接触到了一个$.browser 。
jq下的$.browser 是用来判断当前使用的浏览器的,我们来详细介绍一下
使用方法:
$.browser.['浏览器关键字']
$(function() {
if($.browser.msie) {
alert("this is msie");
}
else if($.browser.safari)
{
alert("this is safari!");
}
else if($.browser.mozilla)
{
alert("this is mozilla!");
}
else if($.browser.opera) {
alert("this is opera");
}
else {
alert("i don't konw!");
}
jq判断ie版本
$.browser.version == "6.0" $.browser.version == "7.0"
如果不考虑向后兼容性,又不想为了判断各浏览器类型而导入jQuery
判断IE最简单的方法是
if(document.all){ alert("IE6") }
如果是为了只是为了判断IE的版本还是推荐用IE的条件表达式来书写JS
<!--[if IE]>
<script type="text/javascript">
alert("ie")
</script>
<![endif]-->
<!--[if IE 6]>
<script type="text/javascript">
alert("ie6")
</script>
<![endif]-->
<!--[if IE 7]>
<script type="text/javascript">
alert("ie7")
</script>
<![endif]-->