Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вставить div в javascript (https://javascript.ru/forum/misc/48031-vstavit-div-v-javascript.html)

yapka 17.06.2014 10:07

Вставить div в javascript
 
Добрый день. Прошу у Вас помощи. Подскажите пожалуйста , как вставить div в этот код:

function pageScroll() {
    	window.scrollBy(0,50); 
    	scrolldelay = setTimeout('pageScroll()',100); 
}


и вот кнопка:

<a href="javascript:pageScroll()"> </a>


Пробовал делать так:

function pageScroll() {
		
		var div = document.getElementById("#left");	
    	window.scrollBy(0,50); 
    	scrolldelay = setTimeout('pageScroll  ("#left")',100);


и так:

function pageScroll() {
	var div = ("#left"); 	
    	window.scrollBy(0,50); 
    	scrolldelay = setTimeout('pageScroll(document.getElementById("#left"))', 100);
}


Все равно при нажатии на кнопку срабатывает главная страница, подскажите пожалуйста , как вставить правильно div.

рони 17.06.2014 10:32

yapka,
:-? а ещё проще обьяснить?

рони 17.06.2014 10:45

yapka,
что ваша функция должна сделать в итоге? пока какая-то бесконечная рекурсия -- функция себя бесконечно запускает

Erolast 17.06.2014 10:47

Допустим, что прокрутить див до низу.

Зачем решетка? Зачем ты в функцию pageScroll передаешь что-то, если в ней нет аргументов? Где остановка при достижении максимальной прокрутки? У тебя тут бесконечная рекурсия получилась. И, главное - с чего бы должен прокрутиться див, когда у тебя ясно написано "window.scrollBy"?
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
  <script>
  function scroll_into_bottom(element, step, delay) {
    if (element.scrollTop >= element.scrollTopMax) return;
    if (step == undefined) step = 10;
    if (delay == undefined) delay = 10;
    element.scrollTop += step;
    setTimeout(function(){scroll_into_bottom(element, step, delay)}, delay);
  }
  </script>
    
  <div id="mydiv" style="height: 100px; overflow-y: scroll; background-color: blue;">
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
  </div>
  <button onclick="scroll_into_bottom(document.getElementById('mydiv'))">Scroll into bottom!</button>
</body>
</html>

yapka 17.06.2014 10:54

Цитата:

Сообщение от Erolast (Сообщение 316873)
Допустим, что прокрутить див до низу.

Зачем решетка? Зачем ты в функцию pageScroll передаешь что-то, если в ней нет аргументов? Где остановка при достижении максимальной прокрутки? У тебя тут бесконечная рекурсия получилась. И, главное - с чего бы должен прокрутиться див, когда у тебя ясно написано "window.scrollBy"?
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
  <script>
  function scroll_into_bottom(element, step, delay) {
    if (element.scrollTop >= element.scrollTopMax) return;
    if (step == undefined) step = 10;
    if (delay == undefined) delay = 10;
    element.scrollTop += step;
    setTimeout(function(){scroll_into_bottom(element, step, delay)}, delay);
  }
  </script>
    
  <div id="mydiv" style="height: 100px; overflow-y: scroll; background-color: blue;">
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
  </div>
  <button onclick="scroll_into_bottom(document.getElementById('mydiv'))">Scroll into bottom!</button>
</body>
</html>


не работает так , div становится белым и все. остановка вот:

function stopScroll() {
    	clearTimeout(scrolldelay);
}



<a href="javascript:stopScroll()"></a>

рони 17.06.2014 10:55

Erolast,
в некоторых браузерах несмог ваш код запустить а в некоторых получил туже рекурсию :-?

yapka 17.06.2014 10:58

Пробую делать так:

function pageScroll() {
		
		var div = ("#left"); 	
    	div.scrollBy(0,50); 
    	scrolldelay = setTimeout('pageScroll ()',100);


не выходит.. белый экран

Erolast 17.06.2014 11:00

Цитата:

в некоторых браузерах несмог ваш код запустить а в некоторых получил туже рекурсию
А... scrollTopMax не везде поддерживается, походу.
А так?
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
  <script>
  function scroll_into_bottom(element, step, delay) {
    if (element.scrollTop >= (element.scrollHeight - element.clientHeight)) return;
    if (step == undefined) step = 10;
    if (delay == undefined) delay = 10;
    element.scrollTop += step;
    setTimeout(function(){scroll_into_bottom(element, step, delay)}, delay);
  }
  </script>
     
  <div id="mydiv" style="height: 100px; overflow-y: scroll; background-color: blue;">
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
  </div>
  <button onclick="scroll_into_bottom(document.getElementById('mydiv'))">Scroll into bottom!</button>
</body>
</html>


Цитата:

не выходит.. белый экран
И не выйдет.

рони 17.06.2014 11:00

yapka,
:-? что должна сделать ваша функция и причём в ней див?

рони 17.06.2014 11:02

Цитата:

Сообщение от Erolast
А так?

форум говорит ошибка


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