Javascript.RU

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

Прокрутка скролла для чата
Добрый вечер. Пишу чат для своего проекта, но никак не могу сделать автоматическую прокрутку скролла в iframe.

С горем пополам сделал автоматический подгон высоты под высоту окна браузера. Помогите пожалуйста сделать автоматическую прокрутку к самому нижнему сообщению чата. Перечитал кучу подобных вопросов, но не разобрался. Спасибо.

Мой код:
<script language="JavaScript">
window.onload=function() {
var heighfr = window.innerHeight;
heighfr = heighfr - 260;

if(heighfr < 250) {
heighfr = 250;
}

if(heighfr > 500) {
heighfr = 500;
}
document.getElementById("ifr").style.height=heighfr+"px";
}
</script>

<div id="chat">
<iframe id="ifr" srcdoc="chatcont" name="chatfr" align="left" width="696px" height="300px" frameborder="0"><span style="color:#9e3239; font-size:20px;">Ваш браузер не поддерживается.</span></iframe>
</div>
Ответить с цитированием
  #2 (permalink)  
Старый 29.09.2013, 04:17
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Ну так внутри фрейма:

window.scrollTo(0, 9999);
Ответить с цитированием
  #3 (permalink)  
Старый 29.09.2013, 12:16
Интересующийся
Отправить личное сообщение для Wolfak Посмотреть профиль Найти все сообщения от Wolfak
 
Регистрация: 28.09.2013
Сообщений: 12

Сообщение от Ruslan_xDD Посмотреть сообщение
Ну так внутри фрейма:

window.scrollTo(0, 9999);
А можно поподробнее как это сделать? пробовал, не помогает.
Содержимое фрейма у меня наполняется в PHP так :
$content = file_get_contents(ROOT_DIR . '/templates/chat/chat.tpl');

for($i = 0; $i < 22; $i++) {
$chatcont .= "$i<br>";
}

$searchtag = 'chatcont';
$content = str_replace($searchtag, $chatcont, $content);
$tpl->set_value('CONTENT',$content);
Ответить с цитированием
  #4 (permalink)  
Старый 29.09.2013, 12:20
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

<script type="text/javascript">
window.onload = function() {
   this.scrollTo(0, 9999);
}
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 29.09.2013, 13:39
Интересующийся
Отправить личное сообщение для Wolfak Посмотреть профиль Найти все сообщения от Wolfak
 
Регистрация: 28.09.2013
Сообщений: 12

Сообщение от Ruslan_xDD Посмотреть сообщение
<script type="text/javascript">
window.onload = function() {
   this.scrollTo(0, 9999);
}
</script>
Если вывожу так:
for($i = 0; $i < 22; $i++) {
$chatcont .= "$i<br>";
$chatcont .= "<script type=\"text/javascript\">
window.onload = function() {
   this.scrollTo(0, 9999);
}
</script>";
}

То выводится только цифра 0 во фрейме.
Если так:
for($i = 0; $i < 22; $i++) {
$chatcont .= "$i<br>";
}
$chatcont .= "<script type=\"text/javascript\">
window.onload = function() {
   this.scrollTo(0, 9999);
}
</script>";

То не работает.
Ответить с цитированием
  #6 (permalink)  
Старый 29.09.2013, 14:33
Интересующийся
Отправить личное сообщение для Wolfak Посмотреть профиль Найти все сообщения от Wolfak
 
Регистрация: 28.09.2013
Сообщений: 12

Переделал html код так, что теперь чат выводится в div со скроллом.
<script type="text/javascript">
window.onload = function() {
   this.scrollTo(0, 9999);
}
</script>

Ваш скрипт в любой вставке убирает скролл заданный с помощью
overflow-y:auto;
Ответить с цитированием
  #7 (permalink)  
Старый 29.09.2013, 21:04
Интересующийся
Отправить личное сообщение для Wolfak Посмотреть профиль Найти все сообщения от Wolfak
 
Регистрация: 28.09.2013
Сообщений: 12

Вопрос больше не актуален. Переписал свой чат с использованием материала из этой статьи. Спасибо за попытку помочь.
Прошу закрыть топик.
Ответить с цитированием
  #8 (permalink)  
Старый 03.10.2013, 10:03
Интересующийся
Отправить личное сообщение для Wolfak Посмотреть профиль Найти все сообщения от Wolfak
 
Регистрация: 28.09.2013
Сообщений: 12

Подскажите пожалуйста, как можно реализовать, чтобы скрол опускался только после прихода нового сообщения, не в конец списка, а на рдно сообщение. А то использую скроллту нельзя читать историю чата, постоянно откидывает в конец.
Ответить с цитированием
  #9 (permalink)  
Старый 03.10.2013, 11:15
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от Wolfak Посмотреть сообщение
Подскажите пожалуйста, как можно реализовать, чтобы скрол опускался только после прихода нового сообщения, не в конец списка, а на рдно сообщение. А то использую скроллту нельзя читать историю чата, постоянно откидывает в конец.
Лучше поставить проверку положения скролла и если он дальше, чем, например, 500px от конца фрейма, прокрутку не делать.
Ответить с цитированием
  #10 (permalink)  
Старый 03.10.2013, 18:49
Интересующийся
Отправить личное сообщение для Wolfak Посмотреть профиль Найти все сообщения от Wolfak
 
Регистрация: 28.09.2013
Сообщений: 12

Подскажите, как сделать такую проверку?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фреймворк для разработки расширений для Chrome chernikov Библиотеки/Тулкиты/Фреймворки 0 05.03.2012 17:51
бот для чата Evgeniy_25 Работа 13 07.07.2010 22:46
смайлы для чата, замена текста brain Общие вопросы Javascript 9 28.11.2008 21:35