jquery остановить исчезновение

у меня есть следующий скрипт

 <script>
  $(document).ready(function(){
   $("div.mover").hover(function () {
  $("div.hide1").fadeTo("slow", 0.33);

  $("div.hide1").fadeTo("slow", 1);

},function(){
  $("div.hide1").stop();
});
  });
 </script>

 and html page is

<table width="100%" border="0" cellspacing="0" cellpadding="0">
 <tr>
<td><div class="mover"><IMG SRC="images/buttons_full_01.png" ></div></td>
 </tr>
 <tr>
<td><div class="mover"><IMG SRC="images/buttons_full_02.png"></div></td>
 </tr>
<tr>
<td><div class="mover"><IMG SRC="images/buttons_full_03.png"></div></td>
</tr>
</table>

моя функция - исчезать фон при наведении мыши на кнопку

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

что я хочу, так это: когда мышь ушла, анимация кнопок переходит в $("div.hide1").fadeTo("slow", 1); и остановись


person air    schedule 21.10.2009    source источник


Ответы (1)


Ваша первоначальная функция работает нормально, пока указатель мыши не перетаскивается на второй (или третий) «движущийся» div. Когда это произойдет, вы можете поставить в очередь несколько анимаций следующим образом:

mover1.hover-over()
mover2.hover-over()

По умолчанию вызов stop завершает только текущую анимацию — анимацию, инициированную для первого движителя, а не анимацию, поставленную в очередь для второго движителя.

Вы можете предотвратить запуск дополнительных анимаций, очистив очередь анимаций при вызове stop, который принимает необязательный параметр clearQueue:

$(document).ready(function(){     
    $("div.mover").hover(function () {
        $("div.hide1").fadeTo("slow", 0.33).fadeTo("slow", 1);
    }, function(){
        // Added stop parameters and added an additional fadeTo,
        // to make sure we get back to 100% opacity.
        $("div.hide1").stop(true).fadeTo("slow", 1);
    });
});
person Jeff Sternal    schedule 21.10.2009
comment
Иногда stop(true, true) действительно необходимо. - person alexvance; 02.08.2012