2013-10-30 21 views
0

身体有一个背景(svg),我想每次单击背景时将其向左滑动。解决方法ie10 background-position-x

单击处理程序我使用

$('body').animate({'backgroundPositionX': nex+"em"},1500); 

其中NEX得到每次递增* 600 和铬和FF更新背景位置-X就好了。但是,即使它以一种非常奇怪的方式工作。或者宁可不以一种非常奇怪的方式工作。

当我按f12时,在ie10中,背景位置x始终在样式选项卡上保持不变,但在“计算”选项卡上发生变化。但即使你可以看到计算值的变化,当你读到background-position-x时,你什么都没有得到,所以jquery从ZERO动画到新的位置,而不是从当前位置。

我正在尝试寻找解决方法。

+0

问题有关'em's您可以轻松地测试你自己。另外,我在IE10上看到了这个问题,但该页面并未在Chrome和Mozilla上显示任何内容。只是一个空的青色背景。 –

+0

我无法想象为什么你不会在Chrome和Mozilla上看到它。如果我可能会问,你使用什么版本? – AwokeKnowing

+0

Chrome版本32.0.1687.2 canary Aura和SeaMonkey 2.22(Gecko 25.0),都在Windows 7下。 –

回答

0

好吧,background-position-x不支持在IE中,这真是一个无赖,因为jquery的动画只能在单一属性上工作,而不是像background-position: 5em 10em这样的属性。

解决方法是创建一个虚拟VAR(这里x)和动画效果,每一次打造的字符串,像这样:

backposx=0; 
function next_click() 
{ 
    $({x: 0}).animate({x: 600}, { 
     duration: 1500, 
     step: function(){ 
      $("#background").css("background-position",(backposx-~~this.x) + "em 0%");}, 
     complete:function(){backposx-=600;} 
    }); 
}