jQuery - slideUp 开始快结束慢?

Mod*_*ner 0 html javascript css jquery jquery-animate

我有一个使用slideUpjQuery 功能的下拉菜单。我想知道是否可以取消恒定速度并快速开始并缓慢结束。我环顾四周并阅读了 中的easing方法animate,我尝试了它,但它似乎不适用于slideUp,仅animate(如果我错了,请告诉我);但除此之外,我似乎无法弄清楚。有任何想法吗?这是我当前的代码:

$(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);
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

HTML 是一个非常基本的下拉结构(只是一个ul带有lis 和内部uls的元素嵌套在里面。然后在 css 中,我将其ul ul显示为 none 隐藏内部的位置,然后,当然,由 jQuery 切换) .

任何帮助将不胜感激! :-)

3dg*_*goo 5

我们可以使用jQuery 缓动插件来做到这一点。

包含 jQuery 缓动 Javascript 文件:

https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.4.1/jquery.easing.min.js
Run Code Online (Sandbox Code Playgroud)

然后我们可以使用缓动变量作为slideUp函数中的参数。

Javascript

jQuery('#Example').slideUp({
    duration: 1000,
    easing: 'easeOutCubic'
});
Run Code Online (Sandbox Code Playgroud)

演示