Событие “Resize()” срабатывает на телефоне даже если просто прокручивать страницу

303
09 августа 2017, 22:03

Здравствуйте. На сайте есть галерея, которая берет нужное количество картинок в зависимости от размера экрана. Была проблема, что при изменении размера экрана (перевернуть телефон) галерея оставалась прежней, поэтому я добавил событие resize, но если запускать сайт именно с телефона, то оно срабатывает даже если ты просто листаешь страницу (в отладке от googlegchrome в телефонном режиме не срабатывает). Что можно сделать в этой ситуации, или может есть другое событие?

$(window).resize(function(){
    pushImages(lastArray);
});
Answer 1

Встречал данный вопрос где-то на просторах английского Stack overflow. Чем обусловлен данный баг было непонятно, но в качестве решения предлагалось хранить ширину окна. И когда срабатывает resize, проверять, действительно ли ширина изменилась.

// Сохраняем где-то ширину
var saved_width = $(window).width();
// В нужном месте ставим проверку
if ($(window).width() != saved_width) {
    return false;
} else {
    return true;
}

UPD нашёл тему: вот

UPD2 Как мне подсказывает @Regent в комментариях, баг был связан со строкой ввода адреса, которая то скрывается, то появляется.

UPD3 @Regent Нужно не забывать обновлять значение saved_width

READ ALSO
Как в input вставить данные value, как у <select>?

Как в input вставить данные value, как у <select>?

Хочу уйти <select> и перейти на input autocomplete

278
Почему не работает скролл элемента?

Почему не работает скролл элемента?

Работаю с данной компонентойВсе отрисовывается хорошо, выделение итемов работает,но почему-то нет скролла

350
Исключение элемента из выборки

Исключение элемента из выборки

Как селектором :not или методом not() исключить из обернутого набора вложенный элемент? Есть такая структура:

322
Как реализовать MVC на Express.js?

Как реализовать MVC на Express.js?

Никак не могу разобраться, как реализовать модели в Expressjs? Подскажите ресурсы, где описано, как это сделать

326