JQuery зависания с проблемой затухания времени W / скриншот - PullRequest
0 голосов
/ 16 июня 2011

При наведении курсора на маркер карты я исчезаю, меняю фоновое положение спрайта, затем снова возвращаюсь. Но у меня возникает проблема с согласованностью, когда это действие выполняется быстро для нескольких пуль.

Идеи, как я могу настроить это, не делая отдельное событие для каждой пули?

enter image description here

$("#map a").hover(
  function () {
    $(this).fadeOut(200, function () {
      $(this).css('backgroundPosition', '0 0');
      $(this).fadeIn(200);
    });
  },
  function () {
    $(this).fadeOut(200, function () {
      $(this).css('backgroundPosition', '');
      $(this).fadeIn(200);
    });
  }
);

Спасибо за умственные способности!

... Но я думаю, что я просто собираюсь удалить эту функциональность вместо некоторых причудливых всплывающих подсказок, которые не очень хорошо сочетаются с исчезновением. Спасибо, что заглянули!

Ответы [ 2 ]

0 голосов
/ 16 июня 2011

Вы можете использовать логическое значение, чтобы проверить, анимируете ли вы в данный момент.

animating = false;

$('.something').hover(function() {
    if(animating) {
        return;
    }
    animating = true;
    $('.other').fadeOut(200, function() {
        animating = false;
    });
});
0 голосов
/ 16 июня 2011

Не видя демонстрации, я предполагаю, что вам нужно остановить другие пули, чтобы достичь желаемого эффекта, используя .stop ()

$(this).stop(true, true).fadeOut(200, function () {
  $(this).css('backgroundPosition', '0 0');
  $(this).stop(true, true).fadeIn(200);
});
...