Modernizr + Yepnope + FitText (разные размеры шрифта / масштабирование для разных видовых экранов)

Во-первых, я мусор с JS - новичок.

То, что я хочу сделать, это иметь различное масштабирование FitText (jquery.fittext.js) для устройств различной ширины. Так, например:

$("#hometitle").fitText(1.1); // for mobile

$("#hometitle").fitText(1.2); // for medium screen

$("#hometitle").fitText(1.2); // for large screen

Я понимаю, что могу использовать YepNope следующим образом (внизу моего HTML-документа):

<script type="text/javascript">
Modernizr.load([
    {
        test: Modernizr.mq('(max-width:600px)'),
        yep: '{js_path}mobile.js'
    }
]);
</script>

Тогда внутри mobile.js у меня есть это:

$(document).ready(function() { 
    { 
        $("#hometitle").fitText(1.2);
    }
});

Я хотел (отчаянно!) Знать [a] Я правильно понял приведенный выше код?; и [b] Как добавить дополнительные тесты для трех значений ширины к коду YepNope (см. выше).

Извините еще раз, я бесполезен с JS! И есть проект, который должен использовать это как можно скорее.

(примечание: Modernizr загружается в голове, а внизу страницы перед загрузкой моего кода YepNope jQuery и fittext)

Заранее спасибо!

1 ответ

Мне кажется, что вы на правильном пути. Использование yepnope.js и modernizr для создания полифиллов.

Хотя есть некоторые вещи, которые вам не хватает, например, проверка сначала, поддерживает ли медиа-запросы браузер, а также использование типа устройства в запросе. Также хорошей идеей будет указать диапазон с помощью min-width и max width, потому что есть вероятность, что если вы этого не сделаете, условия теста загрузят несколько файлов javascript.

Что касается нескольких условий, вы можете сделать что-то вроде этого,

Modernizr.load([

    {
        test: Modernizr.mq("only all"),
        nope: 'testnope.js'// this is to check if media queries are supported at all
    },

    {
        test: Modernizr.mq("only screen and (min-width: 960px) and (max-width:1440px)"),
        yep: 'test3.js'
    },

    {
        test: Modernizr.mq("only screen and (min-width: 768px) and (max-width: 959px)"),
        yep: 'test2.js'
    },

    {
        test: Modernizr.mq("only screen and (min-width:480px) and (max-width:767px)"),
        yep: 'test1.js'
    },

    {
        test: Modernizr.mq("only screen and (max-width:479px)"),//smallest screen
        yep: 'test0.js'
    }
]);

Надеюсь это поможет.

Другие вопросы по тегам