Задать вопрос
@ImagineTables

Как отследить событие изменения размера шрифта в браузере?

Когда юзер в настройках меняет средний шрифт на маленький или большой, меняется число пикселей в `1rem`. Как отследить это событие?

Попался вот такой совет:

const observer = new MutationObserver(([mutation]) =>
{
        // 1
        if (mutation.type === 'attributes' && mutation.attributeName === 'style')
        {
            // 2
        }
});

observer.observe(document.documentElement);


Но он нихрена не работает. Во-первых, согласно документации же, `observer.observe()` нельзя вызывать, не указав, что именно надо отслеживать. Т.е. код явно писался без проверки. А если добавить

observer.observe(document.documentElement, {attributes: true} );


(мы же проверяем мутацию атрибутов), то не только в `// 2`, но даже в `// 1` мы не приходим при смене шрифта.

Логику такого ответа я примерно понимаю. Мы же получаем число пикселей в `1rem` вот так:

parseFloat(getComputedStyle(document.documentElement).fontSize)


И значит, он, по идее, должен (?) мутировать. Но по факту этого не происходит.
  • Вопрос задан
  • 65 просмотров
Подписаться 1 Средний 13 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы