| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 | ||
печалька, за 100% зум он берет изначальный, а далее идет как надо, и если уменьшить его в 2 раза, а затем перевести браузер в оконный режим, то исходное состояние зума в 2 раза меньше(50%) и как бы от этого и отталкивается. Как тогда быть?) |
| Автор: ksnk 2.4.2016, 21:30 |
| Вероятно, можно не забывать scale. То есть, когда считаешь размер окна после сдвига - "пересчитай" новый размер в соответствии со старым зумом. Плохо то, что ошибки будет накапливаться, и в случае пропажи события об изменении размера будет такой же конфуз. Но хоть что-то... |