![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Pierre |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.10.2015 Репутация: нет Всего: нет |
Кто может подсказать, как можно отследить зум браузера по дефолту?
Соотношение каких величин использовать нужно?( И нужно ли подобную функцию запускать через setTimeInterval? |
|||
|
||||
| _zorn_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1076 Регистрация: 21.8.2007 Репутация: 1 Всего: 12 |
Боюсь спросить, для чего ?
Может задача неправильно поставлена ? Поиграю в экстрасенса и предложу вам поискать в направлении "css адаптивность" Это сообщение отредактировал(а) _zorn_ - 2.4.2016, 07:08 |
|||
|
||||
| Pierre |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.10.2015 Репутация: нет Всего: нет |
Задумка такова, что при изменении зума должны происходит некоторые действия с контентом, и при возвращении его изначального состояния, все должно возвращаться на свои места.
А разве media quaries решают вопрос с масштабом? вроде как под определенные разрешения просто пилить верстку. |
|||
|
||||
| Pierre |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.10.2015 Репутация: нет Всего: нет |
Решил сам.
//параметры вьюпорта 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 |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Предлагаю сделать `Ctrl -` 4 раза, подвигать окошко за рамку, сделать `Ctrl+` 1 раз и удивиться.
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Pierre |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 3.10.2015 Репутация: нет Всего: нет |
печалька, за 100% зум он берет изначальный, а далее идет как надо, и если уменьшить его в 2 раза, а затем перевести браузер в оконный режим, то исходное состояние зума в 2 раза меньше(50%) и как бы от этого и отталкивается. Как тогда быть?) |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
Вероятно, можно не забывать scale. То есть, когда считаешь размер окна после сдвига - "пересчитай" новый размер в соответствии со старым зумом.
Плохо то, что ошибки будет накапливаться, и в случае пропажи события об изменении размера будет такой же конфуз. Но хоть что-то... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |