2017-07-16 1 views
0

Ich möchte mein HTML-Element in eine andere Hintergrundfarbe ändern lassen, aber ich möchte, dass es einen verblassenden Übergang hat.Animieren mein HTML-Element zu einer anderen Hintergrundfarbe.

function changeBackground() { 
    console.log("changeBackground() function is working"); 
    var backgrounds = ["navy", "blue", "aqua", "teal", "olive", "green", "lime", "yellow", "orange", "red", "maroon", "fuchsia", "purple"]; 
    var randomBG = backgrounds[Math.floor(Math.random() * backgrounds.length)]; 
    $("html").animate({backgroundColor: randomBG}, "slow"); 
    console.log(randomBG); 
} 

Ich habe einige Probleme in der 5. Zeile. Etwas funktioniert hier nicht und mein Code bricht. Ist das der richtige Weg dies zu tun/sollte ich fadeIn() (und wie) verwenden?

+0

Haben Sie die Funktion aufrufen? Hier ist, wie Sie es ohne jquery tun würden - https://jsfiddle.net/1eotLfjz/ –

Antwort

1

Nach Beschreibung der animate Methode

Eigenschaften, die animiert werden können:

backgroundPositionX 
backgroundPositionY 
borderWidth 
borderBottomWidth 
borderLeftWidth 
borderRightWidth 
borderTopWidth 
borderSpacing 
margin 
marginBottom 
marginLeft 
marginRight 
marginTop 
outlineWidth 
padding 
paddingBottom 
paddingLeft 
paddingRight 
paddingTop 
height 
width 
maxHeight 
maxWidth 
minHeight 
minWidth 
fontSize 
bottom 
left 
right 
top 
letterSpacing 
wordSpacing 
lineHeight 
textIndent 

So, Hintergrund-Farbe kann nicht animiert werden. Sie können jedoch die transition Eigenschaft für Element, das Sie benötigen, ernennen. Dann können Sie die Farbe Ihres Elements ändern, es wird mit der integrierten Browseranimation animiert.

Wie die

function changeBackground() { 
 
    console.log("changeBackground() function is working"); 
 
    var backgrounds = ["navy", "blue", "aqua", "teal", "olive", "green", "lime", "yellow", "orange", "red", "maroon", "fuchsia", "purple"]; 
 
    var randomBG = backgrounds[Math.floor(Math.random() * backgrounds.length)]; 
 
    $("html").css('background-color',randomBG);} 
 
    
 
$('#click').click(function() {changeBackground()});
html { 
 
    transition: background-color 5s ease; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<button id="click">Click to change the colour</button>

+0

Große Erklärung, ich verstehe das jetzt. Danke für diese Antwort! – ronlaniado

+0

@ronlaniado, wäre es schön, meine Antwort als richtig zu markieren :) – Sergey

+0

Erledigt. Danke für die Hilfe. – ronlaniado

Verwandte Themen