Ich versuche, meinen Benutzern zu erlauben, das Hintergrundbild eines bestimmten DIV dynamisch zu ändern. Sie tun dies, indem sie ein Bild über ein HTML-Formular hochladen. Sobald das Bild hochgeladen ist, benutze ich JQuery, um den Hintergrund des DIV zu aktualisieren.JQuery ersetzt dynamisch das Hintergrundbild
Ich weiß, das wurde schon mehrmals gefragt und mit einem Beispiel, das ich online gefunden habe, kann ich das Hintergrundbild ersetzen, aber wenn der Benutzer ein neues Bild hochladen und erneut ändern will, dann funktioniert es nicht.
Es scheint, ich kann das Bild nur einmal ändern, nachfolgende Änderungen geschehen nicht, es sei denn, ich aktualisiere die Seite.
Mein DIV wird mit dem folgenden CSS
#background
{
width:450px;
height:200px;
background-color: #FFFFFF;
background-image: url("images/background.png");
background-repeat: no-repeat;
#background-size: contain;
background-size: cover;
}
Onload die DIV ein Standard-Hintergrundbild hat, lädt der Benutzer das Bild über das Formular und mit der folgenden JQuery ich das Bild auf die neue hochgeladene Datei ändern.
$('#background').css("background-image", "url(" + filename + ")");
filename
ist der Name der hochgeladenen Datei. Das alles funktioniert gut und das neue Bild wird angezeigt.
Wenn ich eine andere Datei hochlade, kann ich sehen, dass die Datei im Upload-Ordner korrekt geändert wurde, aber der DIV-Hintergrund ändert sich nicht.
Eine Sache, die ich bemerkt habe, nach der ersten Änderung zeigt Chrome das CSS für das DIV mit den folgenden unmarkierten. background-image: url(images/bacground.png);
, es scheint auch, dass dem DIV jetzt ein Style zugewiesen ist, der den Namen der neuen Datei als Hintergrund hat.
Wie mache ich das, damit sie den Hintergrund so oft ändern können, wie sie möchten?
Dank
Kontrolle der Bildpfad, in dem Bild hochgeladen? –
Das Bild wurde korrekt hochgeladen. Es wird nur nicht auf dem Bildschirm aktualisiert. – Tom