LINUX.ORG.RU

Прокрутка нескольких картинок не всегда «зацикливается»

 , ,


0

2

Заметил странное. Например, в этой теме - если прокручивать картинки вправо (нажатием мышки на стрелочку), то доходит до последней картинки, и останавливается, на первую не переключается. При прокрутке влево - исправно перескакивает с первой на последнюю. А вот в этой теме – всё работает в обе стороны.

Дополнение: при отключённых плагинах проблема не воспроизвелась. Вопрос снимается.

Дополнение2: дело не в плагинах. Дело в размере окна. Меняю размер окна на поменьше - всё работает. Возвращаю большой размер - перестаёт крутить вправо.

★★★

Последнее исправление: CrX (всего исправлений: 4)

Скорее всего, это происходит в Chromium-based браузере. Воспроизвелось в Helium из AppImage.
Не первый раз вижу жалобу на это — даже как-то комментировал.

Не могу понять причины подобного поведения, но если нажать F11 (Full Screen) или F12 (Developer Tools), то будет прокручиваться.
Может быть, это поможет в поисках бага.

В Firefox нормально зацикливается.

k6
()

аналогично, хромиум.

а еще в танго точки (под каруселью с фотами) стали черными, на темно сером фоне)

и инпутбокс потемнел.

TPPPbIHDELj ★★
()
Последнее исправление: TPPPbIHDELj (всего исправлений: 1)

У меня все норм, chromium.

err
()
Ответ на: комментарий от maxcom

Цвет «точек» я вроде зафиксил, точно еще есть проблема?

сорян. И правда опять побелели.

TPPPbIHDELj ★★
()
Ответ на: комментарий от maxcom

тут есть такая проблема?

у меня карусель бесконечно крутится.

TPPPbIHDELj ★★
()
Ответ на: комментарий от Beewek

Неожиданно… ни разу не ловил такое на Firefox.
Спасибо, что поделился. Буду знать — перестану лезть.

k6
()
Ответ на: комментарий от maxcom

Нет, там всё заворачивается в обе стороны.

Beewek ★★★
() автор топика
Ответ на: комментарий от k6

Я думаю, твоё сообщение тоже полезное. Теперь мы знаем, что такое бывает и на хромиум-базед, и на файрфоксе.

Beewek ★★★
() автор топика

Похоже, это какие-то мои дополнения виноваты. Попробовал на чистом профиле - проблема не воспроизвелась.

Beewek ★★★
() автор топика
Ответ на: комментарий от Beewek

Отключил uBlock Origin (единственное предустановленное расширение) в Helium — после перезапуска браузера проблема ушла.
Больше проверить не на чем.

k6
()
Ответ на: комментарий от k6

Проблема возвращается без перезапуска если играться с размером окна.
Уменьшаю/увеличиваю всяко — всё мотается.
Если устанавливаю размер окна (!) браузера в 1120x720 зацикленность вправо останавливается.
Похоже, у меня размер окна и размер viewport’а совпадают.
uBlock Origin по-прежнему отключён.
В данном случае не помогает даже включение Developer Tools (Dock to Bottom/Undock into separate window); а вот с Dock to right/Dock to left, а также по F11 (то есть когда ширина перестаёт быть 1120) мотается.

k6
()
Ответ на: комментарий от k6

Да, по первой ссылке разные размеры картинок, может в этом дело. В пустом профиле я смотрел с другим размером окна, и на светлой теме.

Beewek ★★★
() автор топика
Ответ на: комментарий от k6

Изменил размер окна без отключения плагинов (сделал поменьше) - всё заработало. Видимо, маленькая последняя картинка как-то криво обсчитывается.

Beewek ★★★
() автор топика
Ответ на: комментарий от Beewek

Действительно, какое-то граничное условие срабатывает.
Честно говоря, я в этом мало что понимаю.
Просто решил, что раз уж влез в тему, то хоть информации подсоберу/тестов поделаю.
Глядишь, Максим быстрее разберётся, зная куда примерно копать.

k6
()
Ответ на: комментарий от k6

Удалось воспроизвести в Firefox.
Это происходит при размере окна браузера 1120x719, но это неважно, так как если включить, к примеру, панель закладок, то начинает нормально мотаться.

Получается, это происходит не из-за изменения размера окна, а из-за изменения размера либо viewport’а, либо всего элемента <body> (или каких-то вложенных в него элементов).
В общем, достаточно изменить размер на 1 пиксель и всё работает/не работает.
В Helium через изменение ширины, в Firefox через изменение высоты.

Опять же, если после «починки» вызвать консоль разработчика снизу, то перестаёт мотать в обоих браузерах.
Наловил уже кучу комбинаций, перечислять их все нет смысла.
Один пример в Helium: размер viewport’а 1120x410 — не мотает, а 1120x409 или 1120x411 мотают.
Идей больше нет. :-(

k6
()
Ответ на: комментарий от k6

Я JS не особо умею, максимум могу эту библиотеку обновить или заменить. Если проблема устойчиво воспроизводиться, то можно попробовать им тикет закинуть.

maxcom ★★★★★
()
Ответ на: комментарий от maxcom

Строго говоря, я это и за баг не считаю. У меня в Openbox это штатное поведение. При листании рабочих столов вправо они бесконечно гоняют по кругу, а если листать влево, то останавливаются на первом (крайнем левом).

Я написал потому, что уже влез в чужую тему; ну и думал, что помогу чем смогу.

Я вспомнил, что всё-таки в прошлом году натыкался на такое поведение в Firefox и даже не обратил внимания. Я редко листаю картинки (обычно смотрю первую только) и знать не знал об этой «проблеме» пока не стал натыкаться на жалобы.

Если только из перфекционизма заморочиться, а вообще можно и оставить её на потом/навсегда. Тем более, пока занимаешься рефакторингом/чисткой/причёсыванием кодовой базы. Думаю, есть задачки поважнее и поинтереснее.

k6
()
Ответ на: комментарий от madcore

штатное поведение

Не-не… это я про Openbox.
А так, мне всё равно. Картинки листаю редко, но был уверен, что Firefox этому не подвержен.
Был неправ.

k6
()

Вот в этом куске кода:

let d = t ? i.scrollLeft + a : i.scrollLeft - a;
s && (d = t ? i.scrollLeft + i.offsetWidth : i.scrollLeft - i.offsetWidth),
i.scrollLeft < 1 && !t && !l && (d = i.scrollWidth - i.offsetWidth),
i.scrollLeft >= i.scrollWidth - i.offsetWidth && t && !l && (d = 0),
методом ненаучного тыка влепил Math.ceil(i.scrollLeft) >= i.scrollWidth - i.offsetWidth вместо i.scrollLeft >= i.scrollWidth - i.offsetWidth и заработало на высоте окна 410.

Где-то тут на ЛОРе проскакивала эта особенность с дробными координатами, не могу сейчас найти.

Если хотеть делать правильно, то видимо надо как-то сообщить авторам этой библиотеки, чтоб уж по-настоящему, по-научному починили.

Toxo2 ★★★★★
()
Последнее исправление: Toxo2 (всего исправлений: 2)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.