Да, скриншот мелковат, так получается чего или нет? Посоветованный пример посмотрели?
PS: javascript: в обработчиках уже устарело, поэтому не нужно функцию rist вынести за пределы цикла |
<style> div { border: solid 1px; width: 50px; height: 50px; } </style> <div id="div" style="position: absolute; top: 0px; left: 0px; border: none; "> <button>click</button> <div>div1</div> <div>div2</div> <div>div3</div> </div> <script> window.onload = function () { var div = document.getElementById('div'); var but = div.children[0]; but.onclick = function () { var count = 200; var step = 6; var coof = 1; var goLeft = function (elem) { elem.style.left = parseInt(elem.style.left) + step; } for (var i = 0; i < count; i += step) { setTimeout(function () {goLeft(div)}, i*coof); } } } </script> |
причём тут это? Ваш код передвигает весь родителський див с потомками, а не набор определённых дивов внутри...
не то всё это( |
Цитата:
если бы вместо setTimeout(rist,0); написали бы rist()- была бы рекурсия |
Цитата:
|
Romeo,
Длинный код - жарко - лучше дебажить или с готовой странички или минималистический код с HTML работающий в топике и демонстрирующий проблему... Просто подобная задача была вчера - полторы штуки - а тут бесплатно и напрягайся, |
Цитата:
|
готовый скрипт с нуля я и сам написать могу, я лишь только попросил расставить правильно кавычки в первом сообщении)
ладно, сейчас попробую переделать вашу функцию... посмотрим что получиться) спасибо. |
вот, сделал :)
Всем огромное спасибо, и отдельно Бесу за пример скрипта который я переделал) <style> div div { border: solid 1px; width: 50px; height: 50px; } </style> <div style="position: relative; top: 0px; left: 0px;"> <div onclick="qwe(id)" style="position: absolute; top: 0px; left: 0px;" id="1">div1</div> <div onclick="qwe(id)" style="position: absolute; top: 50px; left: 0px;" id="2">div2</div> <div onclick="qwe(id)" style="position: absolute; top: 100px; left: 0px;" id="3">div3</div> <div onclick="qwe(id)" style="position: absolute; top: 150px; left: 0px;" id="4">div4</div> </div> <script> function qwe(id) { var count = 200; var step = 6; var coof = 1; for (var j = id; j < 5; j++) { for (var i = 0; i < count; i += step) { setTimeout("document.getElementById('"+j+"').style.left = parseInt(document.getElementById('"+j+"').style.left) + parseInt('"+step+"')",i*step); } } } </script> |
Можно так (хотя при быстрых кликах не будет точности)
<style> #div div { position: absolute; border: solid 1px; width: 50px; height: 50px; } </style> <div id="div"> <div style="left: 0px; top: 0px">div1</div> <div style="left: 0px; top: 50px;">div2</div> <div style="left: 0px; top: 100px;">div3</div> <div style="left: 0px; top: 150px">div4</div> </div> <script> window.onload = function () { var div = document.getElementById('div'); var divs = div.children; var len = divs.length; var count = 200; var step = 6; var coof = 1; var mas; function goRight(mas) { var len = mas.length; for (var i = 0; i < len; i++) { mas[i].style.left = parseInt(mas[i].style.left) + step; } } div.onclick = function (e) { e = e || event; var target = e.target || e.srcElement; mas = []; for (var i = 0; i < len; i++) { if (target == divs[i]) { for (var j = i; j < len; j++) { mas.push(divs[j]); } break; } } for (var i = 0; i < count; i += step) { setTimeout(function () {goRight(mas)}, i*step); } } } </script> |
Часовой пояс GMT +3, время: 23:59. |