Дайте примеров анимации элемента по двум осям
Вот делаю страничку на 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);
}
};
|
может есть у кого-нибудь шаблонные варианты, буду рад!
А то мне кажется я изобретаю велосипед (и едет он пока хреново) :) |
выложи полный тестовый пример и добавь возможность запуска [html run height=500]
|
полный пример большой слишком.
Опишу суть по подробнее: Страница состоит из двух окон. В одном из них находятся объекты, а в другое они переносятся (drag-n-drop). Если пользователь не донес элемент до второго окна - элемент возвращается обратно на свое место с помощью анимации (постепенно перемещаясь по top left) Пример вроде выложил простенький? |
чуть позже выложу с run
|
Библиотечка pottis.js этим занималась - яблоки раскладывала)
http://www.pottisjs.com/ |
Цитата:
http://learn.javascript.ru/js-animation http://learn.javascript.ru/drag-and-drop |
andrey1402,
ссылка на туалеты ) |
Цитата:
Может тут: http://javascript.ru/ui/draganddrop#obychnyy-perenos |
| Часовой пояс GMT +3, время: 23:39. |