Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Узнать прокручивали ли блок (https://javascript.ru/forum/dom-window/84083-uznat-prokruchivali-li-blok.html)

sash003 30.05.2022 17:35

Узнать прокручивали ли блок
 
Здравствуйте, сделал чат, хочу чтобы при приходе сообщения блок с ними прокручивался, чтобы его сразу было видно.Но если крутили вверх, искали какое-то сообщение, то нет. Ну типа как в телеграмме сделано. Запутался с этими оффсетами вкрая уже, подскажите пожалуйста как это сделать)

success: function(res)
{
	if(res != "NO")
	{
		var last = $(res);
		last.appendTo("#messages");
		// если вверх не крутили чтото не искали
		if (тут нужно условие был ли messWrap прокручен)
		{
			$("#messWrap").stop().animate(
				{
					scrollTop: $("#messages").height()+'px' // в прокручиваемом блоке messWrap находится блок с сообщениями
				},
				333
			);
		}
	}
}

рони 30.05.2022 21:48

sash003,
success: function(res)
{
	if(res != "NO")
	{
		var last = $(res);

        var scroll = messWrap.scrollHeight - messWrap.clientHeight < messWrap.scrollTop /*+ 18*/;
		last.appendTo("#messages");
		// если вверх не крутили чтото не искали
		if (scroll)
		{
			$("#messWrap").stop().animate(
				{
					scrollTop: $("#messages").height()+'px' // в прокручиваемом блоке messWrap находится блок с сообщениями
				},
				333
			);
		}
	}
}

sash003 30.05.2022 22:29

Оооо, Рони, благодарочка! Я ж совсем за высоту забыл:thanks:


Часовой пояс GMT +3, время: 14:45.