Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Как можно отследить исходный зум браузера(100%)


Автор: Pierre 1.4.2016, 19:45
Кто может подсказать, как можно отследить зум браузера по дефолту? 

Соотношение каких величин использовать нужно?(

И нужно ли подобную функцию запускать через setTimeInterval?







Автор: _zorn_ 2.4.2016, 07:01
Боюсь спросить, для чего ?
Может задача неправильно поставлена ?

Поиграю в экстрасенса и предложу вам поискать в направлении "css адаптивность"

Автор: Pierre 2.4.2016, 09:04
Задумка такова, что при изменении зума должны происходит некоторые действия с контентом, и при возвращении его изначального состояния, все должно возвращаться на свои места.
А разве media quaries решают вопрос с масштабом? вроде как под определенные разрешения просто пилить верстку.  

Автор: Pierre 2.4.2016, 14:40
Решил сам.

//параметры вьюпорта
var iw = window.innerWidth;
var ih = window.innerHeight;
//функция переопределения параметров
function getValues(){
    iw = window.innerWidth;
    ih = window.innerHeight;
}

function getScale() {
    var nodes = document.querySelectorAll(".node");
    var nodesVis = document.querySelectorAll(".hide");
    var scale = Math.round(iw/window.innerWidth * 10);

    if (Math.round(window.innerWidth*100/iw) !=  Math.round(window.innerHeight*100/ih)){
        //зум не изменился, поменялись размеры окна
        getValues(); //обновим значения ширины и высоты
    }
    else {
        //изменился уровень зума
        //скрываем элементы если зум больше 120%
        if(scale > 12){
            for (var i = 0; i < nodes.length; i++) {
                nodes[i].className = "hide";
            }
            //если зум возвращается к 100% снова показываем элементы
        }else if (scale <= 10){
            for (var j = 0; j < nodesVis.length; j++) {
                nodesVis[j].className = "node";
            }
        }
    }
}

а затем повесил на обработчик resize на window. и все нормуль вроде как)

Автор: ksnk 2.4.2016, 15:26
Предлагаю сделать `Ctrl -` 4 раза, подвигать окошко за рамку, сделать `Ctrl+` 1 раз и удивиться.

Автор: Pierre 2.4.2016, 17:57
Цитата(ksnk @ 2.4.2016,  15:26)
Предлагаю сделать `Ctrl -` 4 раза, подвигать окошко за рамку, сделать `Ctrl+` 1 раз и удивиться.

печалька, за 100% зум он берет изначальный, а далее идет как надо, и если уменьшить его в 2 раза, а затем перевести браузер в оконный режим, то исходное состояние зума в 2 раза меньше(50%) и как бы от этого и отталкивается. Как тогда быть?)

Автор: ksnk 2.4.2016, 21:30
Вероятно, можно не забывать scale. То есть, когда считаешь размер окна после сдвига - "пересчитай" новый размер в соответствии со старым зумом.
Плохо то, что ошибки будет накапливаться, и в случае пропажи события об изменении размера будет такой же конфуз. Но хоть что-то... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)