animate 是jq的一个非常好,用的一个动画效果的一种方法。 但火狐浏览器中 background-position-y、background-position-x、还有jq的 backgroundPosition不完善。如是就想修改一个backgroundPosition插件来兼容。
backgroundPosition 插件代码
(function($) {
$.extend($.fx.step,{
backgroundPosition: function(fx) {
if (typeof fx.start == "number" && typeof fx.end == 'string') {
var start = $.css(fx.elem,'backgroundPosition');
start = start.split("px");
if (start[2] == undefined) {
start = start[0].split("%");
}
fx.start = [parseInt(start[0]), parseInt(start[1])]
var end = fx.end.split("px");
fx.end = [parseInt(end[0]),parseInt(end[1])];
}
var nowPosX = [];
nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + "px";
nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + "px";
fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];
}
});
})(jQuery);
使用方法
$(this).animate({"backgroundPosition": "0px 50px"},200);