jQuery : Klasse Hinzufügen, die dynamisch je nach browser-Fenster Auflösung
Hallo Freunde, ich versuche eine Klasse Hinzugefügt werden, um Körper dynamisch in Abhängigkeit der browser-Fenster-Auflösung. Hier ist der code, den ich versuche zu benutzen, aber brauche Hilfe tuning, wie ich es nicht weiß, jQuery auf alle.
Den Optionen, die ich erreichen möchte sind :
Sobald ein Besucher kommt auf meine Seite, muss dieser code überprüfen Sie die browser-Fenster Größe und Klasse hinzufügen, um Körper, wie pro die folgenden Regeln
- Wenn die Größe der Fenster ist mehr als 1024px aber weniger als 1280px dann fügen Sie der Klasse
.w1280
. - Wenn die Größe der Fenster ist mehr als 1280px aber weniger als 1440px dann fügen Sie der Klasse
.w1440
. - Wenn die Größe der Fenster ist mehr als 1440px aber weniger als 1280px dann fügen Sie der Klasse
.w1680
. - Wenn die Größe der Fenster ist mehr als 1680px dann fügen Sie der Klasse
.wLarge
.
Um dies zu erreichen, bin ich versucht, das folgende Skript verwenden. Meine Fragen sind:
- Ist dies die richtigen code? Wenn nicht, was ist der richtige code?
- Ist dies die beste kürzester code? Wenn nicht, was wird der richtige code?
Bitte helfen, da meine Kenntnisse von jQuery, ist fast gleich NULL.
function checkWindowSize() {
if ( $(window).width() > 1024) {
$('body').addClass('w1280');
} else {
$('body').removeClass('w1280');
}
if ( $(window).width() > 1280 ) {
$('body').addClass('w1440');
} else {
$('body').removeClass('w1440');
}
if ( $(window).width() > 1440) {
$('body').addClass('w1680');
} else {
$('body').removeClass('w1680');
}
if ( $(window).width() > 1600) {
$('body').addClass('wLarge');
} else {
$('body').removeClass('wLarge');
}
}
checkWindowSize()
InformationsquelleAutor Vikram Rao | 2011-01-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie nicht speichern andere Klassen auf die
body
element, Sie könnten dies tun:Einige Leute könnten Ihnen raten, tun Sie es mit einem
switch
Aussage, aber dann, einige Leute mögen auch Essen Ihre Jungen.Diese Funktion überschreibt die
body
's Klasse, jedes mal, wenn es heißt (die Standardeinstellung, wenn der browser kleiner als/gleich 1024 Pixel ist keine Klasse überhaupt), so wie ich sagte, es wird nicht funktionieren, wenn Ihrbody
andere Klassen, die betreut werden müssen.BEARBEITEN Pro Šime Vorschläge, hier ist ein sicherer Weg, es zu tun:
var c = width ...
und dann:c && $('body').addClass(c);
Aber wenn diese Funktion mehrfach aufgerufen werden (wie, sagen wir, wenn der Benutzer die Fenstergröße ändert), wäre es gut, um loszuwerden, ältere, nicht mehr relevante Klassen.
Der OP hat nicht gesagt, dass er beabsichtigt, rufen Sie es mehrfach. Aber unabhängig davon, dass Sie nicht möchten, löschen alle Klassen, da andere Skripte werden kann, anfügen Klasse Namen. Dies wäre der Weg zu gehen:
$('body').removeClass('w1280 w1440 w1680 wLarge').addClass(c);
Du hast Recht; ich habe vergessen jQuery entfernen konnte mehrere Klassen zur gleichen Zeit.
Also @sdl ist dies die richtige syntax mit @sim ' s Vorschlag? ansonsten kann ich @sim bitte geben Sie eine korrekte syntax nach seinen Anregungen?
InformationsquelleAutor sdleihssirhc
Dieser arbeitete für mich, Dank Naina ' s Kommentar hier:
https://www.quora.com/How-do-I-add-and-remove-CSS-classes-using-jQuery-based-on-the-screen-size
InformationsquelleAutor user3669077