Показать сообщение отдельно
  #1 (permalink)  
Старый 11.05.2010, 15:50
Uri Uri вне форума
Интересующийся
Отправить личное сообщение для Uri Посмотреть профиль Найти все сообщения от Uri
 
Регистрация: 29.04.2010
Сообщений: 10

Анимация javascript
подскажите пожалуйста в чем моя ошибка
//вычисление растояния
function getAbsolutePosition(el) {
	var r = { x: el.offsetLeft};
	if (el.offsetParent) {
		var tmp = getAbsolutePosition(el.offsetParent);
		r.x += tmp.x;
	}
	return r;
}
//смена png
function btn(id,mode) {document.images[id].src = 'imgdiyan/'+id+'_'+mode+'.png';}

var i=0;
function s1(){
//блоки по которым объект 'к' определяет сколько пикселей двигаться
var b1 = Math.round(getAbsolutePosition(document.getElementById('b1')).x);
var b3 = Math.round(getAbsolutePosition(document.getElementById('b3')).x);
var b5 = Math.round(getAbsolutePosition(document.getElementById('b5')).x);

i++;

//смена png
if (i>b1) {btn('b',3);}
if (i>b1+110) {btn('b',4);}
if (i>b1+160) {btn('glonass',1);}
if (i>b1+170) {btn('glonass',0);}
if (i>b1+180) {btn('glonass',1);}
if (i>b1+190) {btn('glonass',0);}

//начало движения авто до блока Б1 ... Б3
if (i>b1+200) {k.style.pixelLeft=Math.round((b1-290)+i);}

//остановка блока 'к' у блока Б3
if (i>b3+375) {k.style.pixelLeft=Math.round(b3+86);}

//движение контейнера в верх

if (i>b3+424) {b.style.pixelTop=Math.round(0-(i-(b3+425)));}

//движение блока 'б' до блока 'к'
if (i>b3+436) {
b.style.pixelLeft=Math.round(0+(i-(b3+359))); 
b.style.pixelTop=Math.round(-10); 
}

if (i>b3+456) {btn('b',0);} 

//движение от блока 'к'

if (i>b3+466) {b.style.pixelLeft=Math.round(30-(i-(b3+538)));}

//движение блока 'б' на прежнее место
if (i>b3+490) {
b.style.pixelTop=Math.round(0+(i-(b3+500))); 
b.style.pixelLeft=Math.round(76);
}

//контейнер блока 'б' на место
if (i>b3+500) {b.style.pixelTop=Math.round(0);}

//блок 'к' уехал

if (i>b3+530) {k.style.pixelLeft=Math.round((b3+86)+(i-(b3+529)));}

// наполнение контейнеров... смена png
if (i>b3+535) {btn('b',1);} 
if (i>b3+600) {btn('b',2);
if (i>b5+560) {btn('b',3);}

//возврат блока 'к' в начало...
if (i>b5+700) {i=b1;}



window.status="Отсчет:" + i;
setTimeout("s1()",1);
}

за ранее спасибо 'добрым попутчикам)'
Ответить с цитированием