Как определить размер окна, а затем сделать что-то с помощью оператора jquery switch

Я хотел бы проверить размер окна с jquery и на основе различных разрешений, которые я хотел бы изменить фоновое изображение. Поэтому я думал, как-то использовать оператор "switch" для большего числа случаев, но я просто не знаю, как это будет выглядеть. Это базовая структура, которую я хочу, но с большим количеством опций:

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

Спасибо за вашу помощь.

Ответы

Ответ 1

Оператор switch не позволит вам делать такие вещи, как проверка чисел между определенными значениями, и он не позволит вам проверять несколько переменных,...

Итак, для этого конкретного сценария я считаю, что наилучшим образом подходит только список операторов if-elseif, например, вы уже на своем пути.

Выполнение "проверки диапазона" в switch действительно многословно:

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;
    ...
    ...
}

Ответ 2

Вы должны использовать:

$(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

а затем вы можете сделать:

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

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

EDIT - я не думаю, что использование оператора switch полезно в этом случае. Оператор switch - это просто альтернативный способ обозначения if... else, который в этом случае я нахожу более полезным, потому что у вас есть несколько сравнений:

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
}