Welcome to U.A.C.
login / register 
Status: Guest
Forum archive | iddqd.ru
Wolf 3D
RulesRules SearchSearch
18+
Автопрокрутка при добавлении новых сообщений в чате
   Forum Index - Флуд и устаревшие темы - Автопрокрутка при добавлении новых сообщений в чатеPost a reply
AuthorMessage
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsForum moderator
6284

Doom Rate: 1.65

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

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

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

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



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

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

Doom Rate: 1.36

Posts quality: +365
Link to post #2 Posted: 13.08.15 22:33:25
Дааааааавноооо пора.

Это же прекрасно!
7 1
[D2D]_Revenant
- Colonel -
Next rank: = Colonel = after 82 points
4358

Doom Rate: 1.49

Posts quality: -33
Link to post #3 Posted: 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: +371
Link to post #4 Posted: 14.08.15 16:00:48
Интересный баг словил, теперь если я что-то читаю сверху и кто-то пишет, то все автоматом в начало возращается, у меня одного так?
пс лиса
1
[D2D]_Revenant
- Colonel -
Next rank: = Colonel = after 82 points
4358

Doom Rate: 1.49

Posts quality: -33
Link to post #5 Posted: 14.08.15 17:04:00
Я так и знал, что все сломает. Через раз при наборе сбщ окно выкидывает в начало чата, исправьте пожалуйста, или верните все как было.
П,С,
Как говорит мой папаша: Не трогай технику, и она тебя не подведет - яркое тому подтверждение.
10 2 6
Page 1 of 1Go to top
   Forum Index - Флуд и устаревшие темы - Автопрокрутка при добавлении новых сообщений в чате