Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Прокрутка на JS (https://javascript.ru/forum/dom-window/4843-prokrutka-na-js.html)

flash_uz 24.08.2009 17:07

Прокрутка на JS
 
Здравствуйте, я хотел бы сделать меню с прокруткой как на главной странице сайта http://alibaba.com/. Я пробовал сам сделать, у меня получилось, но браузер(любой) начинает виснуть из-за выполнения скрипта, вот код:

function Scroller() {
	var element = document.getElementById('scroller');
	var children = element.childNodes;
		for (var i = 0, l = children.length; i < l; i++) {
			if (children[i].nodeType != 3) {
				var element2 = document.getElementById('scroller');
				// Сдвинем их на начальную позицию:
				//children[i].style.top = element.offsetTop;
				childrenArray.push(children[i]);
				div = document.createElement("li"); 
				div.id = "reload";
				div.innerHTML = children[i].innerHTML;
				element2.appendChild(div);
			//document.getElementById("scroller").appendChild(div);
  			}
		}// конец цикла	

document.getElementById('scroller').removeChild(document.getElementById("reload"));
	setTimeout("Scroller()",2000);
}


<ul id="scroller" style="width:200px; height:200px; border:1px solid #000000; overflow:scroll;" >
	<? for ($i=0; $i <= 20; $i++) { ?>
		<li id="reload"><? echo($i); ?></li>
	<?  } ?>
</ul>


помогите пожалуйста :help:

Octane 24.08.2009 17:31

Тормозит из-за div.innerHTML = children[i].innerHTML; в цикле. Удаляйте первый дочерний элемент и добавляйте новый методами DOM.

flash_uz 25.08.2009 10:18

Цитата:

Сообщение от Octane (Сообщение 28068)
Тормозит из-за div.innerHTML = children[i].innerHTML; в цикле. Удаляйте первый дочерний элемент и добавляйте новый методами DOM.

Спасибо, за помощь все получилось!


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