Настройка функции оптического масштабирования IE с использованием Javascript/CSS

Сайт, который я поддерживаю, был разработан довольно жестко с использованием пикселей для размеров шрифта, размеров, абсолютного позиционирования и т. д.

Теперь есть запрос на добавление изменения размера шрифта пользователями. Хотя я знаю, что это невозможно без перепроектирования сайта с нуля с использованием относительных размеров, я обнаружил, что сайт довольно хорошо работает с функцией масштабирования IE7/IE8 (Ctrl + и Ctrl -).

Вопрос в том, есть ли способ «предложить» IE открыть этот сайт с уровнем масштабирования по умолчанию (скажем, 125%) без необходимости масштабирования самим пользователям?

Сайт используется только с IE 7+.


person Chetan S    schedule 05.05.2009    source источник


Ответы (2)


Если это выбор ваших пользователей, оставьте это на усмотрение их браузеров. Наиболее зрелые браузеры используют масштабирование, которое увеличивает рендеринг их страниц (IE 7 и 8, Opera, FireFox, Chrome 2.0, Safari?). Кроме того, в зависимости от того, из какой системы (разрешения экрана) приходят ваши пользователи, будет зависеть их выбор масштабирования. К сожалению, каждый браузер запоминает ваши настройки масштабирования немного по-разному, например, хром запоминает для каждого сайта, в то время как это глобальная настройка для каждой новой вкладки/окна.

person Aaron Fischer    schedule 05.05.2009

Если вы действительно хотите делать то, что хотите, чего я, конечно, не рекомендую, попробуйте что-то вроде этого:

$(function(){
    var ratio = 1;
    $(document.body).css("zoom", 1.25); // zoom the page on DOMReady

    // bring back a 'normalized' behavior keyevent zooming
    $(document).keydown(function(e){
        if(e.ctrlKey && {187:1, 189:1, 96:1}[e.which]) {
            switch(e.which){
                case 187: // ctrl +
                    ratio += 0.25;
                    break;

                case 189: // ctrl -
                    ratio -= 0.25;
                    break;

                case 96: // ctrl 0
                    ratio = 1;
            }

            $(this.body).css("zoom", ratio);

            e.preventDefault();
        }
    });
});
person yckart    schedule 10.02.2013