У меня есть куча постоянно прокручиваемых объектов на экране, каждому присваивается номер. Когда вы нажмете один из своих номеров, он будет удален далеко от экрана, чтобы он мог вернуться назад. Когда я пытаюсь переназначить положение элемента с помощью смещения, он исчезает только в течение секунды, а затем продолжает прокрутку там, где он был раньше. Я думаю, это потому, что animimate() все еще продолжается, пока я пытаюсь изменить его, поэтому он меняется на секунду, а затем анимация возвращает его туда, где он был. Как переопределить анимацию, когда она находится в совершенно другой функции?
Здесь, где я пытаюсь вручную назначить:
$(document).ready(function(){
$(document).keyup(function(e){
if(e.which == 48){
$('#foo').offset({top:8, left:-600});
}
});
});
И здесь функция анимации:
$(document).ready(function(){
setInterval(function(){
$('#foo').animate({
left : "+=10"
},{ duration: 200, queue: false });
},200);
}
Анимация отключается от последнего. Если вы установите глобальную переменную, как упоминал Петух, вы сможете ее использовать. Попробуйте что-то вроде этого. Если это не работает, сделайте Fiddle, а затем я могу играть с ним напрямую
$(document).ready(function(){
var leftPos = $('#foo').postion().left;
$(document).keyup(function(e){
if(e.which == 48){
leftPos = -600;
$('#foo').offset({top:8, left:leftPos});
}
});
setInterval(function(){
leftPos +=10;
$('#foo').animate({
left : leftPos
},{ duration: 200, queue: false });
},200);
});