2011-02-10 1 views
0

このドロップダウンメニューを使用して、ゆっくりとアニメーションを作成することはできません。このJQueryを作成する方法.animation()は実際にアニメーション化されます。

$(document).ready(function() { 
    $('#menu > li').hover(function() { $('ul:first', this).show(); }, 
          function() { $('ul:first', this).hide(); } 
    ); 

    $('#menu li li').hover(function() { 
     $('ul:first', this).each(function() { 
      var p = $(this).parent(); 
      $(this).animate('top', p.position().top) 
        .animate('left', p.position().left + p.width()) 
        .show(); 
     });}, 
     function() { $('ul:first', this).hide(); } 
    ); 
}); 

答えて

2

jQueryのanimate()は、CSSプロパティのオブジェクト/マップを想定しています。 2番目のパラメータは、アニメーションの持続時間をmsで定義します。

あなたの例では、このようなものになります

( - topと2000ミリ秒でleftプロパティをアニメーション):あなたはstop()a lookを持っている場合がありますhoverハンドラ内からanimateを呼び出している場合

$(this) 
    .show() 
    .stop() // see below 
    .animate({ 
     'top': p.position().top, 
     'left': p.position().left + p.width() 
    }, 2000); 

を同じように。

ヒント:docsは、このようなことを理解する簡単な方法です。

関連する問題