Welcome to U.A.C. [O.S.A.]
login / register 
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Автопрокрутка при добавлении новых сообщений в чате
   Список разделов - Флуд и устаревшие темы - Автопрокрутка при добавлении новых сообщений в чатеОтветить
АвторСообщение
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1631
Ссылка на пост №1 Отправлено: 16.07.15 18:43:29
Предлагаю отпилить кнопку "вкл/выкл автоматическую прокрутку" и сделать, чтобы это зависело от текущей прокрутки окна чата.
То есть, если скролл уже в самом низу, то при добавлении новых сообщений прокручивается, а если человек что-то читает выше (и соответственно прокрутил выше), то автоматом ничего не трогается.
Тогда для включения автопрокрутки достаточно будет нажать pagedown/end на окне с сообщениями.

Если что, так делают большинство чат-клиентов.

Техническая реализация:
В chat.js добавить одну переменную и поменять два метода, и отпилить кнопку которая переключает это мануально.
Скрытый текст:

Логика вкратце такова: ПЕРЕД добавлением сообщения (addMessageToChatList) МЕЖДУ вызовами updateChatlistView, записывается текущее состояние скролла в глобальную переменную.
Но записывается только один раз, т.е. если мы только-только обновили список сообщений (updateChatlistView).
После этого при вызове updateChatlistView после одного (или нескольких) вызовов addMessageToChatList, оно скроллится или не скроллится в зависимости от того, как было раньше, и обнуляет переменную.



Да, а перед этим поменять обработку тэга img на что-то вроде этого, потому как сейчас при попадании любой невалидной картинки в чат, скроллинг начинает нипадецки колбасить как минимум в Chrome (автоматический скроллинг не доезжает до самого низа примерно на 24пх каждый раз, скрывая одну линию текста и мешая нормальной работе автоскроллинга по моему принципу).
А так мой вариант должен немедленно удалять картинку, если браузер не смог её загрузить.

Оба скрипта тестировалось в свежем Chrome.
2 2 1
TheTaintedSlav
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 145 points
1495

Doom Rate: 1.3

Posts quality: +328
Ссылка на пост №2 Отправлено: 13.08.15 22:33:25
Дааааааавноооо пора.

Это же прекрасно!
5 1
[D2D]_Revenant
Banned flooder
4358

Doom Rate: 1.49

Posts quality: -23
Ссылка на пост №3 Отправлено: 14.08.15 06:29:06
ZZYZX
А ты уверен, что это не будет баговать? Я просто спрашиваю из принципа "рубильник надежнее".
То, что на счет хрома, как ты писал, жуткие косяки такие, конечно, хорошо бы было исправить...
10 2 6
TesaQ
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 141 points
1149

Doom Rate: 1.72

Posts quality: +368
Ссылка на пост №4 Отправлено: 14.08.15 16:00:48
Интересный баг словил, теперь если я что-то читаю сверху и кто-то пишет, то все автоматом в начало возращается, у меня одного так?
пс лиса
1
[D2D]_Revenant
Banned flooder
4358

Doom Rate: 1.49

Posts quality: -23
Ссылка на пост №5 Отправлено: 14.08.15 17:04:00
Я так и знал, что все сломает. Через раз при наборе сбщ окно выкидывает в начало чата, исправьте пожалуйста, или верните все как было.
П,С,
Как говорит мой папаша: Не трогай технику, и она тебя не подведет - яркое тому подтверждение.
10 2 6
Страница 1 из 1Перейти наверх
   Список разделов - Флуд и устаревшие темы - Автопрокрутка при добавлении новых сообщений в чате