Сделать мой JS отзывчивым?

0

Исходный код выглядит следующим образом:

$(document).ready(function () {
    $('#myDeepMenu').deepMenu({
        "tileW": 64,
        "tileH": 100,
        "columns": 2,
        "rows": 2,
        "mark-type": "top-left",
        "mark-color": "#A1A1A1"
    });
});

Я пытаюсь сделать этот код отзывчивым, чтобы значения столбца и строки менялись в зависимости от размера экрана. С этой целью я реализовал это.

$(document).ready(function () {
    if ($(window).width() > 100 && $(window).width() < 200) {
        $('#myDeepMenu').deepMenu({
            "tileW": 64,
            "tileH": 100,
            "columns": 2,
            "rows": 2,
            "mark-type": "top-left",
            "mark-color": "#A1A1A1"
        });
    };
    else {
        $('#myDeepMenu').deepMenu({
            "tileW": 64,
            "tileH": 100,
            "columns": 3,
            "rows": 2,
            "mark-type": "top-left",
            "mark-color": "#A1A1A1"
        });
    };

});

Значения, на которых я сосредоточен, - это "столбцы" и "строки". По какой-то причине добавление условий ширины min-max полностью отключает функцию.

Как мне изменить значения этой функции на основе размера экрана?

  • 0
    если вы хотите , чтобы сделать эти изменения на resize вы должны завернуть , if else в $(window).rezise(function(){ ... });
Теги:

2 ответа

3
Лучший ответ

Вам нужна функция для получения новых измерений всякий раз, когда размер изменяется:

var h = $(window).height(), w = $(window).width();
$(window).resize(function(){

   var nh = $(window).height(), nw = $(window).width();
   h = nh; w = nw;
   if nw > 100 && nw < 200) {
        $('#myDeepMenu').deepMenu({
            "tileW": 64,
            "tileH": 100,
            "columns": 2,
            "rows": 2,
            "mark-type": "top-left",
            "mark-color": "#A1A1A1"
        });
    };
    else {
        $('#myDeepMenu').deepMenu({
            "tileW": 64,
            "tileH": 100,
            "columns": 3,
            "rows": 2,
            "mark-type": "top-left",
            "mark-color": "#A1A1A1"
        });
    };
});
  • 0
    Это, кажется, не работает, хотя я уверен, что это должно. Я просматриваю это прямо сейчас, чтобы увидеть, есть ли какие-либо ошибки в синтаксисе.
  • 1
    Вы получили это на работу? Если нет, вы можете добавить скрипку со всеми необходимыми ресурсами.
Показать ещё 2 комментария
0
if ($(window).width() > 100 && $(window).width() < 200) {
    $('#myDeepMenu').deepMenu({
        "tileW": 64,
        "tileH": 100,
        "columns": 2,
        "rows": 2,
        "mark-type": "top-left",
        "mark-color": "#A1A1A1"
    });
};  <----------------------- Semicolon in error?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню