Движение слоя по окну

Автор статьи: infocity.kiev.ua ©
Сайт Автора: infocity.kiev.ua
E-mail Автора: Нет
Дата публикации: 17.07.2005

 Для примера рассмотрим движение сверху вниз. Затем по аналогии Вы сможете организовывать перемещение в других направлениях или по более сложным траекториям. Для того, чтобы осуществить перемещение нужно знать четыре значения: текущее положение, место остановки, шаг перемещения, время задержки. Мы ограничимся двумя переменными, а шаг и задержку зададим константами.

Создадим функцию перемещения

function moveLayerDown(layerName,currTop,topstop)

В ней сначала проверим, не достиг ли слой конечной точки

if (eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.top != topstop'))
если это не произошло, сдвинем слой вниз
currTop+=2;
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.top = currTop');
и рекурсивно вызовем функцию
setTimeout('moveLayerDown("'+layerName+'",'+currTop+','+topstop+')',50);
Вот, что у нас получилось:
function moveLayerDown(layerName,currTop,topstop){ 
  if (eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.top != topstop')){
    currTop+=2;
    eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.top = currTop');
    setTimeout('moveLayerDown("'+layerName+'",'+currTop+','+topstop+')',50);
  }    
}