2015-01-28 2 views
0

Я пытаюсь выполнить базовую анимационную работу. Я скопировал алгоритм, предложенный как ответ в этой теме: JavaScript animationJavaScript-анимация не работает

Моя попытка скопировать его не работает. Все, что я сделал, это изменить имя функции на «anim» и, возможно, изменить метод вызова функции. Что я делаю не так?

#test { 
position: absolute; 
left: 140px; 
} 

</style> 
<body onload="anim(document.getElementById("test"), "left", "px", 140, 300, 500);> 
<p id="test">LOL</p> 


<script> 
function anim(elem,style,unit,from,to,time) { 
    if(!elem) return; 
    var start = new Date().getTime(), 
     timer = setInterval(function() { 
      var step = Math.min(1,(new Date().getTime()-start)/time); 
      elem.style[style] = (from+step*(to-from))+unit; 
      if(step == 1) clearInterval(timer); 
     },25); 
    elem.style[style] = from+unit; 
} 
</script> 
</body> 
+0

ответ в подсветкой синтаксиса –

ответ

0

Неправильный синтаксис. Попробуйте это:

</style> 
<body onload="anim(document.getElementById('test'), 'left', 'px', 140, 300, 500);"> 
<p id='test'>LOL</p> 


<script> 
function anim(elem,style,unit,from,to,time) { 
if(!elem) return; 
var start = new Date().getTime(), 
    timer = setInterval(function() { 
     var step = Math.min(1,(new Date().getTime()-start)/time); 
     elem.style[style] = (from+step*(to-from))+unit; 
     if(step == 1) clearInterval(timer); 
    },25); 
elem.style[style] = from+unit; 
} 
</script> 
</body> 

И jsFiddle: http://jsfiddle.net/rwowf5j8/

0

Проверить цитаты:

onload="anim(document.getElementById('test'), 'left', 'px', 140, 300, 500);"> 
Смежные вопросы