0

slideUp我有一个使用jQuery 中的功能的下拉菜单。我想知道是否可以取消恒定速度并快速开始并缓慢结束。我环顾四周,阅读了 中的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);
        });
    });
});

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

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

4

1 回答 1

5

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

包括 jQuery 缓动 Javascript 文件:

https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.4.1/jquery.easing.min.js

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

Javascript

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

演示

于 2012-12-08T05:45:59.827 回答