2010-11-23 60 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); 
});