2011-09-05 12 views
15

Chciałbym sprawdzić rozmiar okna z jquery i na podstawie różnych rozdzielczości chciałbym zmienić obraz tła. Tak więc myślałem, aby użyć instrukcji "switch" dla większej liczby przypadków, ale po prostu nie wiem, jak to wyglądałoby. Jest to podstawowa struktura, której chcę, ale z większą liczbą opcji:Jak wykryć rozmiar okna, a następnie zrobić coś z oświadczeniem przełącznika jquery

if ((screen.width>=1024) && (screen.height>=768)) { 
//do something 
} 
else { 
//do something else 
} 

Dzięki za pomoc.

Odpowiedz

1

oświadczenie switch nie pozwoli Ci robić takie rzeczy sprawdzanie liczb między pewnymi wartościami, i nie pozwoli ci sprawdzić wielu zmiennych, albo ...

Tak więc dla tego konkretnego scenariusza, myślę, że najlepsze dopasowanie to w rzeczywistości lista oświadczeń if-elseif, takich jak Ty " jesteś już w drodze do zrobienia.

robić „kontrole Range” w switch jest bardzo gadatliwy:

switch(windowWidth) { 
    case 1: 
    case 2: 
    case 3: 
    case 4: 
    case 5: 
     //Do something if value is less than or equal to 5 
     break; 
    case 6: 
    case 7: 
    case 8: 
    case 9: 
    case 10: 
     //Do something if value is higher than 5 AND less than or equal to 10 
     break; 
    ... 
    ... 
} 
+0

Yeh, myślę, że twoja prawa @peirix, mam na myśli jestem pewien, że masz rację co do instrukcji switch, ale miałem nadzieję jakoś to zaimplementować, na przykład sprawdzając tylko szerokość ekranu i jeśli to dopasowuje przypadek, a następnie coś robi ... ale myślę, że będę się trzymał if-elseif –

+0

Możesz włączyć zakresy, jeśli zrobisz coś takiego: switch (true) {case windowWidth> = 1 && windowWidth <= 5: break; case windowWidth> = 6 && windowWidth <= 10: break; } – hdctambien

38

Należy użyć:

$(window).width(); // returns width of browser viewport 
$(document).width(); // returns width of HTML document 

$(window).height(); // returns heightof browser viewport 
$(document).height(); // returns height of HTML document 

a następnie można zrobić:

var width = $(window).width(); 
var height = $(window).height(); 

if ((width >= 1024 ) && (height>=768)) { 
//do something 
} 
else { 
//do something else 
} 

EDIT - nie sądzę, że za pomocą instrukcji switch jest użyteczna w tym przypadku. Instrukcja switch jest tylko alternatywnym sposobem na if ... else notacji, że w tym przypadku mogę znaleźć bardziej użyteczne, ponieważ masz wiele do zrobienia porównania:

if ((width >= 1280) && (height>=1024)) { 
//do something 
} 
else if ((width >= 1024 ) && (height>=768)){ 
//do something else 
} else if ((width >= 800) && (height>=600)){ 
//do something else 
}else{ 
//do something else 
} 
+0

Dzięki @Nicola Peluchetti ale chciałbym więcej przypadków, podobnie jak z instrukcji switch. –

+0

Zaktualizowałem moją odpowiedź: –