Also you could add something like:
function getFn( color ){
return function(){
$(this).stop().animate({ color:linkColors[color] },150};
};
};
And then: $('#cpblock-links a').css('color',
linkColors[0] ).hover( getFn(1), getFn(0) );
Ariel Flesler
On 15 feb, 16:32, Ariel Flesler <[EMAIL PROTECTED]> wrote:
> function enableFadingLinks() {
> var linkColors = getColorsFromCSS('links');
> if ( !linkColors) return;
> $('#cpblock-links a').css('color', linkColors[0] ).hover(
> function(){
> $(this).stop().animate({ color: linkColors[1] },
> 150);
> },
> function(){
> $(this).stop().animate({ color: linkColors[0] },
> 150);
> }
> );
> $('#content a').css('color', linkColors[2] ).hover(
> function(){
> $(this).stop().animate({ color: linkColors[3] },
> 150);
> },
> function(){
> $(this).stop().animate({ color: linkColors[2] },
> 150);
> }
> );
>
> };
>
> You can also avoid repeating first and second part with some wicked
> check, like adding a class to all of them and doing like:
> var color = linkColors[ $(this).is('.cp-block') ? 1 : 2 ];
> That's just an example, not using logic numbers.
>
> Remember.. chain, chain, chain.
>
> Hope that helps
>
> Ariel Flesler
>
> On 15 feb, 15:48, Nazgulled <[EMAIL PROTECTED]> wrote:
>
>
>
> > Hi,
> > I have this code that animates links when you move the mouse over/out
> > using the hover() but the thing is: the page does not have always the
> > same link colors. For instance, some parts of the webpage has links
> > that have color A and B (a:link and a:hover respectively) some other
> > parts have links of color C and color D (a:link and a:hover
> > respectively) and in the future I might need some other website parts
> > to have even more different colors, currently, I only have these 2.
>
> > And the code for all that is as follows:
>
> > /**
> > * Adds a fade effect to links on mouse hover
> > */
> > function enableFadingLinks() {
> > // Get the link colors from the external CSS file
> > var linkColors = getColorsFromCSS('links');
>
> > // Double check if the colors were retrieved
> > if (linkColors) {
> > // Function hook to each 'a' element found on the specific
> > ID
> > $('div#cpblock-links a').each(function(){
> > // Little bug fix for first mouseover
> > $(this).css({
> > color: linkColors[0]
> > });
>
> > // Function hooks to the hover event of the 'a'
> > element
> > $(this).hover(
> > function() {
> > $(this).stop();
> > $(this).animate({ color:
> > linkColors[1] }, 150);
> > },
> > function() {
> > $(this).stop();
> > $(this).animate({ color:
> > linkColors[0] }, 150);
> > }
> > );
> > });
>
> > // Function hook to each 'a' element found on the specific
> > ID
> > $('div#content a').each(function(){
> > // Little bug fix for first mouseover
> > $(this).css({
> > color: linkColors[2]
> > });
>
> > // Function hooks to the hover event of the 'a'
> > element
> > $(this).hover(
> > function() {
> > $(this).stop();
> > $(this).animate({ color:
> > linkColors[3] }, 150);
> > },
> > function() {
> > $(this).stop();
> > $(this).animate({ color:
> > linkColors[2] }, 150);
> > }
> > );
> > });
> > }
>
> > }
>
> > As you can see, there's a bunch of code that I repeat and the only
> > differences are the colors that I pass to the code that depend on what
> > links we are animating. I'm looking for a way to compact this code, to
> > make it smaller (less lines of code).
>
> > Do you have any suggestions?
>
> > P.S.: Just in case you need to know, I'm using the color plugin to be
> > able to animate the color properties of the elemnts.
>
> > P.S.2.: Also, if you know of a better a way to have color fading
> > links, let me know... I've already wasted lots of times in this little
> > link effect and I've only come up with this result.- Ocultar texto de la
> > cita -
>
> - Mostrar texto de la cita -