jQuery ändert das CSS-Attribut langsam

Lesezeit: 2 Minuten

Benutzer-Avatar
Grigor

Ich habe diesen Code

$('#uiAdminPanelMenu li a').hover( function(){
    $(this).css('background-color', '#D3E1FA';
 },
 function(){
    $(this).css('background-color', '#F4F4F4');
});

Es ändert die Hintergrundfarbe des Links, aber ich möchte, dass es sich langsam ändert, ähnlich wie bei einem Fade-Effekt, aber für diesen Fall.

  • möglicherweise sogar animieren() es?

    – Alastair Pitts

    5. August 2011 um 3:16 Uhr

Sie können dasselbe mit CSS3-Übergängen erreichen. Das Ergebnis wird fast genau dasselbe sein.

#uiAdminPanelMenu li a {
    background-color: F4F4F4;
    -webkit-transition: background-color 0.4s ease;
    -moz-transition: background-color 0.4s ease;
    -o-transition: background-color 0.4s ease;
    transition: background-color 0.4s ease;
}

#uiAdminPanelMenu li a:hover {
    background-color: D3E1FA;
}

  • Dies funktioniert perfekt für High-End-Browser. aber IE erkennt es nicht, also ist jQuery dafür besser, denke ich

    – Grigor

    5. August 2011 um 15:18 Uhr

  • Das ist wahr, ich verstehe nicht, warum sie versuchen, voranzukommen, ich meine Firefox und Chrome + einige andere führen das Geschäft

    – Grigor

    5. August 2011 um 16:57 Uhr

Benutzer-Avatar
Paul

Sie verwenden möchten animate()aber Sie brauchen auch die Farb-Plugin für jQuery.

Mit dem enthaltenen Farb-Plugin funktioniert der folgende Code gut:

$('#uiAdminPanelMenu li a').hover( function(){
    $(this).animate({'background-color': '#D3E1FA'}, 'slow');
 },
 function(){
    $(this).animate({'background-color': '#F4F4F4'}, 'slow');
});

  • @Lucio Danke, dass du mich informiert hast. Die neuesten Versionen des Farb-Plugins sind mit jQuery 2 kompatibel. Ich habe den Link und die Antwort aktualisiert.

    – Paulus

    14. Juli 2013 um 18:04 Uhr

  • Dies ist perfekt, insbesondere für den Stilwechsel.

    – Venugopal M

    27. August 2014 um 7:14 Uhr

Vielleicht ist es sehr spät für die Beantwortung dieser Frage, aber ich wollte trotzdem eine alternative Lösung anbieten, die für mich funktioniert hat. (Beide Antworten, die zuvor gegeben wurden, funktionieren). Ich habe CSS-Animation verwendet, und das hat für mich auch in einigen anderen Fällen besser funktioniert als jquery animate. Sie können Folgendes versuchen –

// ‘bcolor’ ist der später definierte Keyframe-Name der Animation

#uiAdminPanelMenu li a:hover {
    -webkit-animation-name: bcolor; 
    -webkit-animation-duration: 1s;   
    -webkit-animation-fill-mode: forwards;
    -moz-animation-name: bcolor;  
    -moz-animation-duration: 1s;   
    -moz-animation-fill-mode: forwards; 
    animation-name: bcolor;
    animation-duration: 1s;    
    animation-fill-mode: forwards;
}

@-webkit-keyframes shadeOn {
    from {background-color: #F4F4F4;}
    to {background-color: #D3E1FA;}
}
@-moz-keyframes shadeOn {
    from {background-color: #F4F4F4;}
    to {background-color: #D3E1FA;}
}
@keyframes shadeOn {
    from {background-color: #F4F4F4;}
    to {background-color: #D3E1FA;}
}

1057580cookie-checkjQuery ändert das CSS-Attribut langsam

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy