切换时,jquery animate无法正常工作

时间:2014-11-06 18:08:14

标签: javascript jquery html css

我有以下代码。第一部分代码 - 单个动画,按预期工作 - div减少到50%。

另一方面,切换使div消失 - 似乎减小了宽度和高度,直到div不再可见。它以同样的方式重新出现。

我不是jquery专家 - 任何想法?

    // works
    $(".test-wrapper").animate({
           width: "50%"
       }, 400);

    // Doesn't work
    $(".test-wrapper").toggle(
    function () {

        $(this).animate({
            width: "50%"
        }, 400);
    },
    function () {
        $(this).animate({
            width: "100%"
        }, 400);
    });

2 个答案:

答案 0 :(得分:0)

jQuery的切换与动画不是一回事。切换只是隐藏/显示元素。 Here's the doc

要实现您正在做的事情,您需要定义2个不同的动画,并以某种方式使用测试来知道您需要运行哪个动画。

答案 1 :(得分:0)

您应该使用click代替:

$(".test-wrapper").click(function () {
    $(this).animate({
        width: !this.toggled ? "50%" : "100%"
    }, 400);
    this.toggled = !this.toggled;
});

您肯定使用的是jQuery 1.9版>所以使用而不是删除一个toogle event

one (toggle)