Можно так (хотя при быстрых кликах не будет точности)
<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>