Анимирование непрозрачности активных миниатюр в галерее с помощью jquery - PullRequest
1 голос
/ 20 июля 2011

Я пытаюсь оживить непрозрачность. Непрозрачность по умолчанию составляет 0,8 для всех миниатюр. После наведения непрозрачность увеличивается до 1 и должна вернуться к 0,8 при наведении другого эскиза.

Я пробовал этот код:

container.delegate("a:has(img)", "mouseenter", function(e){
    $(e.currentTarget).stop(true, true).animate({opacity: 1}, options.thumbsopacityFadeTime);
}).delegate("a:has(img)", "mouseout", function(e){
    $(e.currentTarget).stop(false, true).animate({opacity: options.thumbsOpacity}, options.thumbsopacityFadeTime); 
);

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

Я предполагаю, что это как-то связано с анимацией, запущенной в данный момент, а что нет, но я подумал, что $ (e.currentTarget) будет применяться только к этому 1 миниатюре, так почему же событие отключения мыши вызывается для этой миниатюры, когда я не оставить миниатюру?

Есть идеи как это исправить?

Спасибо, Уэсли

1 Ответ

1 голос
/ 20 июля 2011

Понял ли я вас, что вы не хотите иметь эффект "мышеловка"?Только при наведении другого эскиза?

Первая попытка заменить "mouseout" на "mouseleave".Если это не поможет, попробуйте другой способ:

var obj = container.find("a:has(img)");

obj.bind({
  mouseenter:function(){
    obj.stop().not(this).animate({opacity: options.thumbsopacity}, options.thumbsopacityFadeTime);
    $(this).animate({opacity: 1}, options.thumbsopacityFadeTime);
  },
  mouseleave:function(){
    // nothing :)
  }
});
...