Подтвердить что ты не робот

Мобильное хромирование огней событие изменения в прокрутке

Я использую браузер Chrome chrome на галактике s4, android 4.2.2 и по какой-то причине каждый раз, когда я прокручиваю страницу вниз, он запускает событие изменения размера, подтвержденное масштабированием изображений из слайд-шоу jquery.cycle2.

Любая идея, почему это может происходить?

4b9b3361

Ответ 1

Просто для любопытства я пытался воспроизвести его, и если я прав, это вызвано навигационной хромированной панелью.

Когда вы прокручиваете страницу вниз, а Chrome скрывает панель навигации браузера, он производит изменение размера окна, но это правильно, потому что после этого у нас будет больший размер окна из-за свободного места, которое осталось в панели навигации браузера.

Связанная статья: https://developers.google.com/web/updates/2016/12/url-bar-resizing

С уважением!

Ответ 2

Это звучит странно, но я видел это в других браузерах. Вы можете обойти это так.

var width = $(window).width(), height = $(window).height();

затем в вашем обработчике изменения размера вы можете сделать.

if($(window).width() != width || $(window).height() != height){
  //Do something
}

Я не знаю сферу ваших функций и все такое, но вы должны понять суть этого.

Ответ 3

Я не знаю, интересно ли это, но Мое решение:)

var document_width, document_height;

$(document).ready(function()
{
	document_width=$(document).width(); document_height=$(document).height();
    // Do something
}

$(window).resize(function()
{
    if(document_width!=$(document).width() || document_height!=$(document).height()) 
    {
        document_width=$(document).width(); document_height=$(document).height();
        // Do something
    }
}	

Ответ 4

Вопрос уже был дан, но поскольку этот вопрос не поднимает вопрос о чувствительных сайтах, я хотел бы добавить некоторую информацию об этом.

Я столкнулся с этой проблемой в Chrome на android при разработке адаптивного веб-сайта. При изменении размера окна я хочу скрыть меню (из-за того, что некоторые элементы дизайна нуждаются в правильном позиционировании), но поведение Chrome для android для запуска события изменения размера в прокрутке сделало это несколько сложным.

Переключение на начало использования onOrientationChange не было вариантом, так как это отзывчивый сайт, на настольном ПК нет изменений ориентации, но мне все еще нужен код для работы как на обычных ПК: s, планшетах и ​​смартфонах.

Я мог бы начать делать обнюхивание браузеров и т.д., но до сих пор мне удалось избежать этого.

Я попытался реализовать решение, предложенное CWitty, но поскольку прокрутка вверх или вниз фактически вызывает изменение высоты, которое тоже не работает.

В итоге я добавил условие, которое скрывает меню только при изменении ширины, а не при изменении высоты. Это работает в моем случае, так как мне нужно только переписать меню при изменении ширины.

Ответ 6

Оказывается, есть много вещей, которые могут срабатывать resize в различных мобильных браузерах.

Я знаю, что это не идеально для ссылки на внешний ресурс, но QuirksMode имеет читаемую таблицу, которую я не хочу дублировать (или поддерживать) здесь: http://www.quirksmode.org/dom/events/resize_mobile.html

Просто чтобы привести пример, тот, который получал нас: видимо, во многих браузерах, открытие мягкой клавиатуры вызывает событие.

Ответ 7

Браузеры на мобильных устройствах часто скрывают горизонтальную верхнюю панель навигации при прокрутке вниз и снова показывают ее при прокрутке вверх. Это поведение влияет на размер клиента, вызывая событие resize. Вам просто нужно контролировать, чтобы ваш код не выполнялся из-за изменений высоты или, по крайней мере, из-за этого изменения высоты.