Каков наилучший способ сделать эффект наведения мыши с эффектом наведения мышью на JavaScript? - PullRequest
0 голосов
/ 03 августа 2011

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

Я уже пытался добиться этого, используя плагин jQuery Cycle, и мне это не удалось. Я чувствую, может быть, есть более простой способ сделать это. Буду признателен за помощь, есть мысли?

Ответы [ 3 ]

2 голосов
/ 03 августа 2011

Поместите изображение в DIV и установите фон DIV на первое изображение.Поместите тег изображения в DIV и наведите SRC на второе изображение.

Теперь вы можете поиграть с непрозрачностью IMG, обнажив фоновое изображение позади него, не меняя ничего.

используйте .opacity ()

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

<div class="wrapper">
   <img src="..." />
</div>
1 голос
/ 03 августа 2011

CSS3 добавляет несколько свойств перехода для обработки подобных вещей, но на данный момент, если вы настроены на использование jQuery, вы можете использовать функцию .animate в сочетании с mouseenter и mouseleave.

Пример:

$('img')
    .mouseenter(function() {
        $(this).stop(true,true).animate({ opacity: 0.5 }, 2000);
    });
    .mouseleave(function() {
        $(this).stop(true,true).animate({ opacity: 1 }, 2000);
    });

.stop очистит предыдущую анимацию и завершит ее так, что, если пользователь будет быстро наводить курсор на элемент несколько раз, он не позволит анимациям накапливаться в длинной очереди.

0 голосов
/ 04 августа 2011

Вы можете попробовать это

$(function(){
  $("imageSelector).mouseover(function(){
      $(this).data("oldSrc", this.src).attr("src", "newSource").stop().fadeT0(500, 1);
  }).mouseout(function(){
     $(this).attr("src", $(this).data("oldSrc")).stop().fadeTo(500, 0.5);
  });
});
...