Вот делаю страничку на Drag'n'Drop.
Хочу приделать, чтобы если пользователь отпускал элемент он не сразу же попадал на назначенное место а посредством анимации (c постепенным изменением top и left)
Сделал, но у меня в firefox не работает и если в одной из осей будет значение меньше положенного (в моем примере +-10) то анимация завершается несмотря на значение другой координаты. Вот код:
var anim = setInterval(animated, 10);
            function animated() {
                var left = leftNew - old.leftPos;  //leftNew - текущая позиция; old.leftPos - конечная позиция анимации
                var right = topNew - old.topPos;//topNew - текущая позиция; old.topPos - конечная позиция анимации
// для x:
                if ( left <= 10 && left >= -10 ) {
                    stopAnimated();
                }
                else {
                    if ( leftNew != old.leftPos ) {
                        if ( leftNew < old.leftPos ) {
                            leftNew += 10;
                            avatar.style.left = leftNew + "px";
                        }
                        else {
                            leftNew -= 10;
                            avatar.style.left = leftNew + "px";
                        }
                    }
                }
// для y:
                if ( right <= 10 && right >= -10 ) {
                    stopAnimated();
                }
                else {
                    if ( topNew != old.topPos ) {
                        if ( topNew < old.topPos ) {
                            topNew += 10;
                            avatar.style.top = topNew + "px";
                        }
                        else {
                            topNew -= 10;
                            avatar.style.top = topNew + "px";
                        }
                    }
                }
            }
            function stopAnimated() {
                clearInterval(anim);
            }
        };