Показать сообщение отдельно
  #1 (permalink)  
Старый 07.04.2013, 20:23
Профессор
Отправить личное сообщение для hoax Посмотреть профиль Найти все сообщения от hoax
 
Регистрация: 20.09.2012
Сообщений: 151

Непонятки в анимации
вот полный код


function animate(opts) {

var start = new Date;

var timer = setInterval(function() {

var progress = (new Date - start) / opts.duration;

opts.step(progress);

if(progress > 1) progress = 1;
if(progress == 1) clearInterval(timer);


}, 15)

return timer;

}

function animateProp(opts) {

var start = opts.start;

var end = opts.end 
var prop = opts.prop;


opts.step = function(progress){
opts.elem.style[prop] = start+(end-start)*progress+ 'px';

 }
 
 return animate(opts);


}

var div = document.getElementById('opa');

div.onclick = function() {

animateProp({start:0,end:100, prop:'marginLeft', duration:1000, elem:div})


}



Несколько вопросов....

1) При клике вызывается ф-я animateProp(а тут ее параменты)

но почему они заключены в {}, если это объект, не разумнее было было сделать так : animateProp(opts= {start:....}) ???

2) При вызове ф-и animateProp, те параметры, которые указываются в ({}) - обращаются к ПЕРЕМЕННЫМ? Ну например в параметре указано animateProp({start:0}), а в этой же ф-и :

animateProp(opts) {var start = opts.start}

так свойство {start:0}, обращается вначале к var start, а затем переход в opts.start ?

Если да, то почему мы не можем поставить (без var) просто opts.start,
ведь opts.elem имеется и работает....
Ответить с цитированием