Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > div, overflow: auto


Автор: Opik 2.6.2005, 18:42
Есть div (overflow: auto). В нем появляется скроллинг, и его нужно прокрутить вниз. как это сделать средставми JS? scrollBy вроде не подходит.

Автор: Aliance 2.6.2005, 18:49
Когда прокрутить - при onload?
Скроллинг же не всегда будет, прально?
Какой id у div`а?

Автор: Opik 2.6.2005, 18:54
id="message"
Цитата
Когда прокрутить
когда появляется smile

Автор: Aliance 2.6.2005, 19:59
doScroll("down") нужно использовать... код напишу завтра, сори, чичас занят...
Если сможешь сам - прекрасно smile

Автор: Opik 2.6.2005, 21:42
я сам smile) если будет неполучатся напишу, хотя отпишу в любом случае.

Автор: Opik 2.6.2005, 22:55
Написал простой скрипт для примера:
Код

<html>
 <head>
   <title>Testing doScroll("Down")</title>
 <style>
  .message
  {
      overflow: auto;
      overflow-y: scroll;
      width: 100;
      height: 100; 
      border: #000000 1px solid;
  }
</style>
<script>
 function dw()
 { 
     el = document.getElementById("message");
     el.doScroll("Down");
 }
</script>
 </head>
<body onload="dw();">
<div id="message" class="message">
text text text text text<br />
text text text text text<br />
text text text text text<br />
text text text text text<br />
text text text text text<br />
text text text text text<br />
text text text text text<br />
text text text text text<br />
</div>
</body>
</html>

Но работает, он как то криво... smile Верней скроллинг если и спускает, то не до конца.

Автор: Sardar 3.6.2005, 00:40
Не увидел эту темку, наофтопил здесь: http://forum.vingrad.ru/index.php?showtopic=54093&st=15 smile

Автор: Opik 3.6.2005, 02:56
Sardar
Код

<script type="text/javascript">
<!--
var d=document.getElementById("test");
var tmr=window.setInterval(function() {
 d.scrollTop+=3;
}, 1000);
//-->
</script>

Т.е каждую секунду спускаем скроллинг?

Автор: Sardar 3.6.2005, 03:22
Цитата(Opr @ 3.6.2005, 01:56)
Т.е каждую секунду спускаем скроллинг?

Да, это был пример, внимание нужно уделять свойству scrollTop, а как ты его заюзаешь, это уже твоя фантазия smile

Автор: Aliance 3.6.2005, 12:26
Почему не получается так:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>© AlianceHTMLEditor [ http://editor.sut.net.ru/editor.html ]</TITLE>
<script type="text/javascript" language="JavaScript">
function setSiz() {
   setTimeout("setSiz2()", 500);
}
function setSiz2() {
   var divmsg = document.getElementById('message');
   divmsg.doScroll("Down");
}

</SCRIPT>
</HEAD>

<BODY>

<div id="message" style="overflow: auto; width: 100px; height: 100px">
testtesttesttesttesttesttesttest
<BR />testtesttesttesttesttesttesttest
<BR />testtesttesttesttesttesttesttest
<BR />testtesttesttesttesttesttesttest
<BR />testtesttesttesttesttesttesttest
</div>

<INPUT type="button" onclick="setSiz()" value="Scroll" />

</BODY>
</HTML>


Пишет данные не готовы =/
Уверен на 100% что ошибка в какой-нибудь маленькой опечатке :-)

Автор: Black 3.6.2005, 14:23
Aliance
убери
------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-----------------------------
и радуйся жизни.

Браузеры переходят в режим совместимости, а scroll видимо с кем-то несовместим.
Поэтому мы удаляем DOCTYPE и браузеры забывают про совместимость smile

Я создал по этому вопросу отдельную тему. Будем надеяться что кто-то сможет что-то вразумительное сказать по этому поводу.

http://forum.vingrad.ru/index.php?showtopic=54320

И как это обойти.

Автор: Sardar 3.6.2005, 15:21
Цитата(Aliance @ 3.6.2005, 11:26)
Почему не получается так:

Проверил, всё работает, DOCTYPE ни при чём.

Автор: Aliance 3.6.2005, 17:47
Sardar
странно, у меня не работает... ИЕ 6.0 SP2

Автор: Sardar 3.6.2005, 18:04
У меня при нажатии на кнопку прокручиваеться на одну строку, это правильный результат? IE6.0 SP2.

Автор: Aliance 3.6.2005, 18:31
Sardar
Да... а у меня вообще ничего... ноль... и ошибка... будем думать 8))

Автор: Ciber SLasH 3.6.2005, 20:48
Вот ещё в тему:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
</HEAD>
<BODY>
<div style='border: 4 solid navy; width: 100; height: 100; overflow: auto'>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
</div>
</BODY>
</HTML>

смотрим... а потом убираем вот это "http://www.w3.org/TR/html4/loose.dtd" и опять смотрим... smile

Автор: Sardar 3.6.2005, 20:52
Во первых это ужё в вёрстку smile

Во вторых убираем ошибки:
  • не заданны еденицы измерения у параметров, например px(пиксели)
  • ставим слой на релативную позицию, иначе он согласно спецификации должен расшириться во весь экран

Смотрим как это всё правильно работает:
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
</HEAD>
<BODY>
<div style="position: relative; border: 4px solid navy; width: 100px; height: 100px; overflow: auto;">
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
wwwwwwwwwwwwwwwwwwwwwwwwwww<br>
</div>
</BODY>
</HTML>

Добавлено @ 20:53
Ciber SLasH другими словами пишем правильно, глюков нет, а в quirksmode браузер пытаеться домыслить сам вещи что ты упустил smile

Автор: anthrax 17.6.2005, 14:16
Можно использовать один простой, как черенок от лопаты, способ. Причем он будет работоспособный и для случаев, когда тебе надо проскроллировать текст до определенной строчки, а не обязательно до самого низа. И никакого JS не нужен.
Просто пометь строчку в диве закладкой (<a name="bookmark">bottom string</a>). А твою страницу с дивом вызывай с использованием закладки. Я думаю идея понятна ...

Успехов!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)