Javascript-форум (https://javascript.ru/forum/)
-   Мобильный JavaScript (https://javascript.ru/forum/mobile/)
-   -   getboundingclientrect не работает в режиме эмулиции мобильного (https://javascript.ru/forum/mobile/69575-getboundingclientrect-ne-rabotaet-v-rezhime-ehmulicii-mobilnogo.html)

iamme 04.07.2017 11:07

getboundingclientrect не работает в режиме эмулиции мобильного
 
Функция getBoundingClientRect() почему-то работает некорректно, если в Google Chrome выбрать режим эмуляции мобильного device mode. Несмотря на прокрутку, значение показывается одно и то же (хотя иногда меняется, причины непостоянного поведения тоже неизвестны).

Ну для примера, вот тут http://grozza.ru/kak-ustanovit-antiv...ast-besplatno/ заголовок остается с одними и теми же координатами при прокрутке (то есть, сначала вроде меняется, но потом все зависает и не меняется).
document.getElementsByClassName('entry-title')[0].getBoundingClientRect().top

ClientRect {top: 157.60000610351562, right: 355.20001220703125, bottom: 258.4000244140625, left: 20, width: 335.20001220703125…}bottom: 258.4000244140625height: 100.80000305175781left: 20right: 355.20001220703125top: 157.60000610351562width: 335.20001220703125__proto__: ClientRect

Выбираю режим эмуляции Iphone 6.


Координата top всегда 157, и хоть убейся!

j0hnik 04.07.2017 14:59

У меня работает все и 6+ и 6.
может пример сделаете, поможем разобраться.

iamme 24.07.2017 17:36

Я даже не знаю, какой тут пример делать - скрипт в смысле? Я просто запускаю две команды из консоли - первая скроллит элемент, так что его координата top должна встать в 0, вторая команда выводит координату, и оказывается, что она не ноль.
Вот скриншот https://hostingkartinok.com/show-ima...e1451e33930771

PS А что значит свойство эмуляции Settings->More Tools->Forced Enabled? Просто может в каких-то настройках дело, я как включила свойство, эмулированный экран покрупнее стал и в первый момент координата 0 вывелась, но потом снова застряла на фиксированном ненулевом значении

iamme 24.07.2017 17:37

Вот команды с выводом:
document.getElementsByClassName('entry-title')[0].scrollIntoView(true)
undefined
document.getElementsByClassName('entry-title')[0].getBoundingClientRect().top
157.60000610351562

iamme 07.11.2017 07:58

В общем проблема была похоже в том, что к ноутбуку был подключен монитор. Без монитора пока что проблемы не наблюдается.

Почему без эмуляции мобильного с монитором проблемы не возникало неясно. В общем механизм возникновения этой проблемы загадка.


Часовой пояс GMT +3, время: 06:33.