Вот, начал писать функцию для анимации..
var anim_ = {};
function anim(e){
return {
'go' : function(param, time, z){
if(e){
anim_[e] = true;
var tm = new Date().getTime();
setTimeout(function(){
var pr = ((new Date().getTime()) - tm) / time;
z(e,pr);
if(pr < 1 && anim_[e]){
setTimeout(arguments.callee, 50);
};
}, 50);
};
return this;
},
'stop' : function(){
delete anim_[e];
return this;
}
};
};
Пример использования:
Код:
|
<div id="lo">text</div>
<script>
var pb = document.getElementById('lo');
pb.onmouseover = function(){
anim(this).stop().go([12, 15], 500, function(e, l){
e.style.fontSize = 15 - 12 * l + 12 +'px';
});
};
pb.onmouseout = function(){
anim(this).stop().go([15, 12], 500, function(e, l){
e.style.fontSize = 12 - 15 * l + 15+'px';
});
};
</script>
|
Проблема в том, чтобы сделать остановку анимации.. при отведении курсора, если элемент ещё не до конца "анимировался", чтобы он анимированно начал возвращаться в предыдущее состояние..