2017-03-03 27 views
0

divにアニメーション機能を実装しようとしていますが、マウスがその上にマウスを置いたときにテキストが少し広がり、マウスが離れると元のサイズに戻ります。jQueryアニメーション関数が正しく機能していない

私のコードでは、マウスの上にマウスを置くたびに、ちょうど小さな四角形に収縮し続けます。私は間違って何をしていますか?

<script> 
    $(function() { 
     var container = $('div.slider').css('overflow', 'hidden').children('ul'), 
      slider = new Slider(container, $('#slider-nav')); 

     slider.nav.find('button').on('click', function() { 
      slider.setCurrent($(this).data('dir')); 
      slider.transition(); 
     }); 
    })(); 

</script> 

<script type="text/javascript"> 
    (function() { 
     //var dd = $('dd'); 
     //dd.hide(); 

     $('dd').filter(':nth-child(n+4)').hide(); 
     $('dl').on('click', 'dt', function() { 
      $(this) 
       .next().hide() 
       .slideDown(200) 
       //.show() 
       .siblings('dd') 
       .slideUp(200); 
      //.hide(); 
      //$(this).next().show(); 
     }); 
    })(); 
</script> 

<script type="text/javascript"> 
    $(function() { 
     $('#admission').on('mouseenter', function() { 
      $(this).animate({ 'fontSize': '+=2', 'height': '+=25', 'width': '+=20' }, 'swing') 
     }); 
     $('#admission').on('mouseleave', function() { 
      $(this).stop().animate({ 'fontSize': '-=2', 'height': '-=25', 'width': '-=20' }, 'swing') 
     }); 
    }); 
</script> 

最後の<script>.... ('#admission')..コードが問題のあるコードです。

+0

私はその日の早い時期に働いていましたが、なぜそれが私の上に振り回されることになったのか分かりません。 – StraightUp

+1

jQueryをこのような目的で使っている理由を聞かせてもよろしいですか?これは、CSSの単純な ':hover'-propertyで行うことができます。 – junkfoodjunkie

+0

問題は '.stop()'だと思います。以前のアニメーションが終了する前に複数回マウスを動かすと、前のアニメーションが途中で停止し、次のアニメーションが現在のサイズ*から開始されます。もしあなたが '+ = 2'と' - = 2'を使うのではなく、特定のサイズにアニメートしてしまうと、将来のアニメーションは過去のものをビルドし続けることができないからです。また、入力と退室の両方で '.stop(true、true)'を使うこともできますが、それは[ちょっとぎこちなくなります](https://jsfiddle.net/Larw3rc7/1/)です。 – nnnnnn

答えて

0

このように変更しても問題ありません。

$(function() { 
     $('#admission').on('mouseenter', function() { 
      $(this).animate({ 'fontSize': '+=2', 'height': '+=25', 'width': '+=20' }, 'swing') 
     }); 
     $('#admission').on('mouseleave', function() { 
      $(this).stop().animate({ 'fontSize': '-=2', 'height': '-=25', 'width': '-=20' }, 'swing') 
     }); 
    }); 
</script> 

準備ができている関数には$と少しの再フォーマットが必要で、末尾に余分な()括弧があります。

+0

まだそれが動作しない理由はわかりません。私はこのページで使用しているすべてのスクリプトステートメントを使って投稿を編集しました。それが問題になるかどうかを確認するだけです。最初の2つのスクリプト関数は機能していますが、最後のスクリプト関数は機能していません。 – StraightUp

関連する問題