2017-02-09 5 views
1

Ich suche nach einem Übergang zwischen Farben, wenn ein Benutzer andere Radio Button-Werte auswählt. Ich habe bereits ein "Arbeits" -Beispiel mit der sofortigen Änderung der Hintergrundfarbe des Körpers, aber ich habe versucht, die Methoden fadeOut() und fadeTo() zu verwenden, aber ohne Erfolg.Wie Sie mit jQuery zwischen den Farben wechseln click()

hier ist, was ich bisher habe, wenn mir jemand zeigen könnte, wo ich ändern sollte und welche Methode zu verwenden.

Vielen Dank im Voraus!

colourChange.js

$(document).ready(function() { 

    $("#goodRad").click(function() { 

     $("body").css('background-color', '#90EE90');//LightGreen 
     console.log("make body green!"); 
    }); 

    $("#okRad").click(function() { 

     $("body").css('background-color', '#FFA07A');//LightSalmon 
     console.log("make body amber!"); 
    }); 

    $("#badRad").click(function() { 

     $("body").css('background-color', '#F08080');//LightCoral 
     console.log("make body red!"); 
    }); 
}); 
+1

Ohne jQuery: 'body {Übergang: background-color 500ms erleichtern}' – Scott

+0

das ist großartig! vielen dank dafür, ich hatte irgendwie gehofft, mit der jQuery zu bleiben, um mehr darüber zu erfahren, aber das ist cool! – oldbie

Antwort

4

Sie CSS transitionbackground-color verwenden können. Ich habe deine jQuery auch etwas überarbeitet, aber du musst nur das CSS aus dieser Antwort hinzufügen.

$('input').on('change',function() { 
 
    $('body').css('background-color',$(this).attr('data-color')); 
 
})
body { 
 
    transition: background-color .5s; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input name="color" data-color="#90EE90" type="radio"><input name="color" data-color="#FFA07A" type="radio"><input name="color" data-color="#F08080" type="radio">

+0

ausgezeichnet! genau das, was ich gesucht habe :). hatte bereits Werte für die Eingabe (aber brauchen sie nicht, also kann zu haben) Würde es eine andere Möglichkeit geben, das gleiche Ergebnis zu erreichen, ohne die .val() Methode zu verwenden? – oldbie

+0

@oldbie sicher aktualisiert meine Antwort –

+0

wieder, sehr gut! :-) Danke! – oldbie

Verwandte Themen