2012-12-08 50 views
0

我有一個下拉菜單,它使用jQuery中的slideUp功能。我想知道是否可以取消恆速並快速啓動並結束緩慢。我看了看周圍,並閱讀animateeasing方法,我試了一下,但似乎它不適用於slideUp,只有animate(如果我錯了,請告訴我);但除此之外,我似乎無法弄清楚。有任何想法嗎?這裏是我當前的代碼:jQuery - slideUp啓動速度快,結束速度慢?

$(document).ready(function(){ 
    var h = "fast"; 

    $("[data-action='dropdown']").click(function(e) { 
     e.stopPropagation(); 
    }); 

    $("body").click(function() { 
     $("[data-action='dropdown'] ul ul").slideUp(h); 
    }); 

    $("[data-action='dropdown'] ul li").click(function() { 
     $("[data-action='dropdown'] ul ul").slideUp(h); 

     $("ul", this).slideDown(h, function(){ 
      $("ul", this).slideUp(h); 
     }); 
    }); 
}); 

的HTML是一個非常基本的下拉菜單結構(只是li秒,然後內ul小號嵌套在ul元素,則在CSS中,我讓到內ul ul隱藏顯示爲none,那麼,當然,是由jQuery切換)。

任何幫助將非常感謝! :-)

+3

的['.slideUp()'方法](http://api.jquery.com/slideup/)接受一個寬鬆參數,雖然核心庫中只有兩個緩存選項可用。你讀過多哥嗎? – nnnnnn

+0

是的,但似乎'擺動'和'線性'不是我正在尋找的類型......有沒有什麼神奇的方式可以轉換或修改「擺動或線性」? – ModernDesigner

+2

您可以使用jQuery UI或其他[easing插件](http://gsgd.co.uk/sandbox/jquery/easing/)來獲得更多選項。 – nnnnnn

回答

4

如上所述,您可以使用jquery easing plugin來執行此操作。

下載幷包含此JavaScript文件:

http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js 

然後你可以使用寬鬆的變量作爲slideUp函數的參數。

的Javascript

$('#Example').slideUp({ 
    duration: 1000, 
    easing: 'easeOutCubic' 
}); 

Demo

+0

啊,謝謝!原來我沒有包括大括號'{...}'謝謝! – ModernDesigner