jQuery的1.6:backgroundPosition VS backgroundPositio

2019-05-12 10:49发布

在尝试升级的jQuery插件“iCheckbox”(http://stackoverflow.com/questions/6032538/)以上的jQuery 1.4.4工作,我发现使用

 animate({backgroundPosition:'10px 0px'})

需要更换时,以

animate({backgroundPositionX: '10px', backgroundPositionY:  '0px'})

因为只有一个参数属性应该被使用。 到目前为止,这是有道理的,但等待..而它在Safari和Chrome做工精细,它不是在FF4工作(全部在Mac)..

所以我想这个和那个,终于找到了,如果我将其更改为

animate({backgroundPosition: '10px'})

它的工作原理无处不在! 但是,这是怎么回事吗? 现在,我只是给一个参数,它的工作原理,但我不指定,如果它是X或Y轴(所以它默认为X轴,似乎..但如果我想什么它在Y轴工作?)

这似乎是奇怪,在这里我的解决方案不能这样做的正确方法..所以我需要一些建议:

这是怎么回事?

1.6,以便它可以跨浏览器 - 应该怎样后台位置使用jQuery 1.4是动画?

Answer 1:

首先,jQuery是无法在同一时间以动画的两个值,所以你看到,用于输入两个值backgroundPosition没有在所有的工作。 另请注意, px值,在jQuery的文档鼓励你px

其次, backgroundPositionXbackgroundPositionY只在几个浏览器中,最值得注意的是IE和WebKit的最近,这就是为什么你会发现它并不在FF或Opera的工作支持非标准的 CSS属性。 ( 见这里 )。

我发现,混合JQuery的animate和CSS转换工程在大多数浏览器在一个轴上动画的背景图像。 我将引用从我的回答另一个问题( jQuery.animate背景位置 ):

使用jQuery的.animate()backgroundPositionXY分别为IE(这将与最新的JQuery的工作)。 然后在浏览器支持CSS过渡 (除了IE几乎一切),使用.css()而不是.animate()来改变背景的位置,并设置样式表中的一个CSS过渡。

您将涵盖大多数浏览器与上面,但只使用一个插件,它可能不兼容的。 看到它在这里工作: http://jsfiddle.net/lucylou/dVpjh/



Answer 2:

据: http://www.w3schools.com/css/pr_background-position.asp

“如果你只给出一个值,另一个值将是50%,你可以混合%和位置”



文章来源: jQuery 1.6: backgroundPosition vs backgroundPositionX and FF4 compatibility