Ich versuche, den Namen eines Klassen-Tags dynamisch zu ändern, wenn ein Benutzer die Seite basierend auf der Bildschirmgröße lädt. Hier ist der Code:HTML Change Klassenname basierend auf Bildschirmgröße
<!DOCTYPE html>
<html>
<body onload="changeClass()">
<section class="example">
<p>Hello</p>
</section>
<section class="example">
<p>New section</p>
</section>
<script>
function changeClass() {
var x = document.getElementsByClassName('example');
var width = (window.innerHeight > 0) ? window.innerHeight : screen.Height;
console.log(width);
if(width <= 640) {
while(x.length > 0) {
x[1].className ='newClass';
}
} else {
while(x.length > 0) {
x[0].className = "example";
}
}
}
</script>
</body>
</html>
Die Seite wird jedoch in eine Endlosschleife geworfen und kann die Daten nicht laden. Gibt es eine einfache Möglichkeit, die benannte Klasse basierend auf der Größe des Bildschirms festzulegen? Kann ich beim Laden der Seite eine "if conditional" Prüfung durchführen? Ich habe auch eine JSFiddle enthalten. Ich weiß nicht, wie viel das aber helfen wird.
Warum machst du das mit Javascript und nicht Medienabfragen in CSS? Es ist ein bisschen übertrieben, Javascript zu verwenden, um Stiländerungen zu behandeln. – Puzzle84
Ist Ihr Endziel, basierend auf der Bildschirmgröße, verschiedene Stile auf ein Element anzuwenden? Oder gibt es einen anderen Grund, den Klassennamen zu ändern? –
Ich suche nur nach dem einfachsten Weg, dies zu tun. Leute online haben Javascript vorgeschlagen. Ich möchte nur den Elementnamen basierend auf der Bildschirmgröße ändern. – Dexstrum