jQuery动画问题

时间:2012-02-24 05:11:36

标签: javascript jquery function colors jquery-animate

我的功能看起来像

$.fn.animateHighlight = function(highlightColor, originalColor, type, duration) {
    var highlightBg = highlightColor || "#FFFF9C";
    var animateMs = 500;
    var animateVal1 = {};
    animateVal1[type] = highlightColor;
    var animateVal2 = {}; 
    animateVal2[type] = originalColor;
    this.stop().animate(animateVal1, animateMs).delay(duration).animate(animateVal2, animateMs);
};

这样称呼

 $("#variants").animateHighlight("red", "#9c9c9c", "borderColor", 3000);

问题是,

这是fieldset的默认边框颜色

enter image description here

这是在动画颜色之后

enter image description here

我知道animate会为元素添加额外的样式属性。我想做的是,返回原始字段集边框颜色(删除样式属性将返回原始边框颜色)。

试图将最后一行功能更改为此

this.stop().animate(animateVal1, animateMs).delay(duration).animate(animateVal2, animateMs).removeAttribute('style');

Animate甚至没有开始。

如何在闪烁后动画并重置回原始版本?

2 个答案:

答案 0 :(得分:0)

this.stop().animate(animateVal1, animateMs).delay(duration).animate(animateVal2, animateMs, function() {
    this.removeAttribute('style');
});

答案 1 :(得分:0)

我认为这两种方法。

1.如果在VariantDiv中使用了stye属性中的border颜色。默认情况下,删除样式属性时样式将丢失。所以你应该保持第一个边框颜色。

例如:

http://jsfiddle.net/tEwa9/

2.如果你不使用风格,你可以这样做。 您可以在完成动画时调用此代码。

$(this).attr('style','');

例如:

http://jsfiddle.net/xSYWS/