Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.06.2012, 10:40
Интересующийся
Отправить личное сообщение для Gerg007 Посмотреть профиль Найти все сообщения от Gerg007
 
Регистрация: 17.06.2011
Сообщений: 21

Обновление чата. сбрасывает скролл вниз
Здравствуйте! делаю чат вот и запоролся на одном месте! при отправке сообщения нужно чтобы див скролил вниз до последнего сообщения! я более менее сделал это но! чат же обновляется каждую 1 сек! дабы одновить инфу у юзера тко принимает сообщение! что получается! обновляется каждую секунду и если скролить вверх через секунду чат одновляется и бросает меня вниз! ну вы поняли читаю верхние сообщения а после обновления отбрасывает вниз...надеюсь я нормально разяснил! а вот сам код!

$(function(){
setInterval(chat_gan, 1000);
function chat_gan () {
	var al = $(".ac").attr("name"); 
	var id_gan = $(".chm_id").attr("id");
	if(al.length === 0) {} 
	else{
		$.post('TESTS/script.php',{ganaxleba: al, gan: id_gan}, function(data11) {$('#f_chati').html(data11);});
		var con = $('#f_chati');
                con[0].scrollTop = con[0].scrollHeight;
 
		}	
	}
});
Ответить с цитированием
  #2 (permalink)  
Старый 23.06.2012, 11:04
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

я дуиаю выводить весь чат каждую секунду-
function(data11) {$('#f_chati').html(data11);})

неправильно-нужно добавлять новое с помощью insertBefore insertAfter или appendChild
Ответить с цитированием
  #3 (permalink)  
Старый 23.06.2012, 11:07
Интересующийся
Отправить личное сообщение для Gerg007 Посмотреть профиль Найти все сообщения от Gerg007
 
Регистрация: 17.06.2011
Сообщений: 21

Сообщение от vadim5june Посмотреть сообщение
я дуиаю выводить весь чат каждую секунду-
function(data11) {$('#f_chati').html(data11);})

неправильно-нужно добавлять новое с помощью insertBefore insertAfter или appendChild
да.и сервер грузить будет! но в чём тогда загвоздка! вот я отправил сообщение и у меня ддобавляется методом insertAfter ! но как тогда тот кому я отправляю узнает о сообщении?? как у него выведится если у него чат не обновится?
Ответить с цитированием
  #4 (permalink)  
Старый 23.06.2012, 11:19
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от Gerg007 Посмотреть сообщение
но как тогда тот кому я отправляю узнает о сообщении?? как у него выведится если у него чат не обновится?
новое сообщение в начало или в конец добавляется?
узнать сможет если сделать сверху-у вас 4 новых сообщения
Ответить с цитированием
  #5 (permalink)  
Старый 23.06.2012, 11:21
Интересующийся
Отправить личное сообщение для Gerg007 Посмотреть профиль Найти все сообщения от Gerg007
 
Регистрация: 17.06.2011
Сообщений: 21

Сообщение от vadim5june Посмотреть сообщение
новое сообщение в начало или в конец добавляется?
узнать сможет если сделать сверху-у вас 4 новых сообщения
В конце! как на одноклассниках .так скажу! когда жмём интер внизу должно выскакивать! ну как большинство чатов в соц. сетях! как можно так сделать?
Ответить с цитированием
  #6 (permalink)  
Старый 23.06.2012, 11:43
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от Gerg007 Посмотреть сообщение
В конце! как на одноклассниках .так скажу! когда жмём интер внизу должно выскакивать! ну как большинство чатов в соц. сетях! как можно так сделать?
когда вводишь сообщение и жмешь ентер то у тебя правильно сделано-а если читаем сообщение сверху то новые добавляешь с помощью appendChild или insertAfter но con[0].scrollTop = con[0].scrollHeight;-не добавляешь но выводишь сообщение у вас новое сообщение
так ведь в одноклассниках сделано кажется
Ответить с цитированием
  #7 (permalink)  
Старый 23.06.2012, 11:50
Интересующийся
Отправить личное сообщение для Gerg007 Посмотреть профиль Найти все сообщения от Gerg007
 
Регистрация: 17.06.2011
Сообщений: 21

Сообщение от vadim5june Посмотреть сообщение
когда вводишь сообщение и жмешь ентер то у тебя правильно сделано-а если читаем сообщение сверху то новые добавляешь с помощью appendChild или insertAfter но con[0].scrollTop = con[0].scrollHeight;-не добавляешь но выводишь сообщение у вас новое сообщение
так ведь в одноклассниках сделано кажется
Да но в чате одноклассников как можете заметить, при отправке сообщения сообщение добавляется внизу и скролит вниз! это у себя я могу осуществить но когда сообщение доходит до собеседника нужноже обновить чат? но как то нужно сделать так что бы добавлял последнее сообщение а не обновлял чат полностью! или чтобы обновлял но показывал при получении нового сообщения если он находится внизу! показывал его и скролил вниз! а если находится не в конечной точке! то чтобы не сбрасывал вниз но засвечивал что есть новое сообщение с этим юзером! ох много написал может что то ещё не того! В общем! как в скайпе нужно ))))
Ответить с цитированием
  #8 (permalink)  
Старый 23.06.2012, 11:56
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от Gerg007 Посмотреть сообщение
но как то нужно сделать так что бы добавлял последнее сообщение а не обновлял чат полностью!
пишешь appendChild-он добавляет в самый конец и не скролит-нужно скролить пишешь con[0].scrollTop = con[0].scrollHeight;
все возможности есть
я думаю когда он сам добавляет сообщение-нужно скролить-а когда приходит от собеседника то только добавить и сообщить что новое сообщение но не скролить
Ответить с цитированием
  #9 (permalink)  
Старый 23.06.2012, 12:03
Интересующийся
Отправить личное сообщение для Gerg007 Посмотреть профиль Найти все сообщения от Gerg007
 
Регистрация: 17.06.2011
Сообщений: 21

Сообщение от vadim5june Посмотреть сообщение
пишешь appendChild-он добавляет в самый конец и не скролит-нужно скролить пишешь con[0].scrollTop = con[0].scrollHeight;
все возможности есть
я думаю когда он сам добавляет сообщение-нужно скролить-а когда приходит от собеседника то только добавить и сообщить что новое сообщение но не скролить
В общем вы предлогаете когда я отправляю нужно скролить а когда мне приходит сообщение проверять есть ли новове сообщение и аппендить?! и да ещё такая штука при обновление в ФФ у меня скролл остаётся внизу а в Гугл хроме при обновлении чата вверх кидает! что не так?! )) Спасибо! посмотрим что у меня получится! а то почти дописал этот мультичат но тут загвоздка!
Ответить с цитированием
  #10 (permalink)  
Старый 23.06.2012, 13:04
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

попробуйте менять скролл после завершения запроса.

и ещё использовать встроенные средства jQuery для определения величины скролла.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Незаметное обновление, разработка чата malkolm Серверные языки и технологии 3 07.03.2010 10:22