Ich versuche, HP Bar für einen Soldaten in einem Spiel zu tun.festen Hintergrund Farbverlauf mit dynamischer Breite
Der Balken sollte 50px Breite und 10px für Höhe (bei Initialisierung) sein.
sollte es so aussehen:
die Breite wie die HP Abnahme abnehmen wird.
das Problem ist, dass ich den Hintergrund wollen ihre Steigung als die Breitenänderung erhalten, wie wenn die Breite Reichweite 10px ich möchte nur die rote Farbe zu bleiben, zB:
gibt es eine Möglichkeit, das mit CSS zu tun?
Hinweis: Ich verwende absolute Position für die Bar, und es ist ein Kind von einem großen Elternteil Div. Hinweis 2: Ich verwende Prozentwert für Breite und Höhe für das gesamte Element, legen Sie diesen absoluten Wert ist, was für ein Dokument mit 1366 Breite und 670 Höhe sein sollte.
Snippet:
function changeWidth()
{
$("#hp").css("width","10%");
}
function reset()
{
$("#hp").css("width","30%");
}
#cont {width:170px; height:170px; background:#000; position:relative}
#hp {
\t position: absolute;
\t bottom: 5%;
\t width: 30%;
\t height: 10px;
\t background: linear-gradient(to left, #C7D9F8 60%, red);
\t left: 5%;
\t transition: all 1s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<div id="cont">
<div id="hp"></div>
</div>
<button onclick="changeWidth()"> Run</button>
<button onclick="reset()"> Reset</button>
Können Sie eine jsFiddle zur Verfügung stellen? –
"sollte 50px Breite und 10px für Höhe sein" .. wenn Sie Breite und Höhe mit absoluter Messung in "px" einstellen, würde es sich nicht dynamisch an seine Elterngröße anpassen. Das widerspricht diesem Teil Ihrer Frage "das Problem ist, dass ich möchte, dass der Hintergrund seinen Gradient als die Breitenänderung behält" – repzero
@JuanFerreras hier ist es :). – shamaseen