【发布时间】:2012-08-28 13:55:55
【问题描述】:
我有一个动画背景位置的小脚本,遗憾的是它在 FireFox 中不起作用。
它适用于 IE 和 Chrome。
$('#background').animate({
'background-position-x': -1020
});
为什么它在 FireFox 中不起作用?
提前致谢!
【问题讨论】:
我有一个动画背景位置的小脚本,遗憾的是它在 FireFox 中不起作用。
它适用于 IE 和 Chrome。
$('#background').animate({
'background-position-x': -1020
});
为什么它在 FireFox 中不起作用?
提前致谢!
【问题讨论】:
您总是可以创建自己的小插件,这并不难。
使用 jQuery 1.8,我们现在可以访问 $.Animation 方法,该方法直接为我们提供动画值而无需太多工作,因此我们可以执行以下操作:
$.fn.animateBG = function(x, y, speed) {
var pos = this.css('background-position').split(' ');
this.x = parseInt(pos[0]) || 0;
this.y = parseInt(pos[1]) || 0;
$.Animation( this, {
x: x,
y: y
}, {
duration: speed
}).progress(function(e) {
this.css('background-position', e.tweens[0].now+'px '+e.tweens[1].now+'px');
});
return this;
}
然后我们可以使用它:
$("#background").animateBG(x-value, y-value, speed);
实时示例: $("#background").animateBG("0px", "-45px", 300);
免责声明:这不是一个完成并经过测试的插件,而是我花了十分钟在 jsFiddle 中创建的东西,但测试它并做你需要的更改,它应该适合你。
【讨论】:
引用https://stackoverflow.com/a/8378817/168735
background-position-x 是非标准 CSS 属性,Firefox 不支持。
见:
http://snook.ca/archives/html_and_css/background-position-x-y https://stackoverflow.com/a/8175460/1011582
【讨论】:
如前所述,background-position-x 和 background-position-y 是非标准的。
您可以探索两种选择:
【讨论】:
您可以在此处阅读:http://my.safaribooksonline.com/0130092789/ch14lev1sec7?portal=oreilly,这是 Internet Explorer CSS 特定属性。
【讨论】:
Firefox 不支持background-position-x 或background-position-y。您应该编写一个简单的函数来计算当前 x 和 y 位置、所需位置并使用 setTimeout 和 $(el).css 对其进行动画处理。或者使用 CSS3 动画。
附: 对不起,我之前的帖子。
【讨论】: