2010-11-23 57 views
2

我坚持与不希望动画功能...jQuery的彩色动画

我使用的是最新的jQuery Color Plugin启用彩色动画。现在,在下面的代码中会发生什么(当然它的工作原理):

(1)用户根据该颜色的RGB值选择一种颜色, (2),我们创建一个更浅的阴影该颜色, (3)鼠标悬停在一个链路时,它的颜色是由新计算出的色代替, (4)移动离开链路的情况下,原来的颜色应在动画。

的颜色替换工作绝对很好,但是动画并不像目前看起来更像传统的CSS悬停效果,而不像使用jQuery的800msecs那样。

如果忍者能够帮助我,那么我会非常乐意照亮你的投掷星星一周:)。这里的代码:

$('a').hover(function() { 
//code when hover over 
$oldColour = $(this).css('color'); 

    $(this).animate({'color': $(this).css('color', function(i, v){ 
     var rgb = getRGB($(this).css('color')); 

     for(var i = 0; i < rgb.length; i++){ 
     rgb[i] = (rgb[i] + 60 < 255) ? rgb[i] + 60 : 255; 
     } 

     var newColor = 'rgb(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ')'; 
     return newColor; 

     }) //end anonymous function 
    }, 800); //end animate 


    }, function() { 
     //code when hovering away 
     $(this).animate({'color': $(this).css('color', $oldColour)}, 800); 
    }); 

你的帮助,一如既往,真棒,非常感谢! 表达谢意(和女孩,当然)采取看看:)

PS要看到一个活生生的例子,去demo page任何链接悬停......

=====更新:与需要更多帮助===== Cambraca的代码完美无缺。除了在IE中,它首先淡化为非常深的颜色,然后在我将鼠标关闭时返回到初始颜色,然后当我将鼠标悬停在其上时,正确的重新计算的颜色显示...

有关如何解决这个IE?

+0

为什么你需要`$(本)的.css( '颜色',功能...`? – Fred 2010-11-23 02:20:30

+0

说实话,我打掉我的球在插入该函数(I,V)直接在动画颜色部分 - 它只是不会运行,所以我想出了CSS的颜色功能:)。很明显,它没有工作,但我的智慧已经结束了......花费了3个多小时才尝试在转向计算器之前提出解决方案。 – 2010-11-23 12:16:26

回答

2

试试这个

var $oldColour; 

$('a').hover(function() { 
    //code when hover over 
    $oldColour = $(this).css('color'); 
    var rgb = getRGB($(this).css('color')); 
    for (var i = 0; i < rgb.length; i++) 
     rgb[i] = Math.min(rgb[i] + 60, 255); 
    var newColor = 'rgb(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ')'; 
    $(this).animate({'color': newColor}, 800); 
}, function() { 
    //code when hovering away 
    $(this).animate({'color': $oldColour}, 800); 
});