flexbox的slideDown动画

时间:2012-07-05 22:39:05

标签: jquery html5 css3 flexbox

好的所以我试图在jquery中重新创建“slideUp”和“slideDown”功能但是当flexbox用于显示时!

jQuery.fn.toggleFlexbox = function() {
    var elm = $(this[0]);
    if(elm.css('display') === "none"){
        elm.css('display', '-webkit-flex');
    }else{
        elm.slideUp('fast');
    }
};

这是我有多远(目前上面的代码工作,但当我们从“无”切换到“-webkit-flex”时它不会滑动,我尝试了以下内容)

elm.animate({"display":"-webkit-flex"}, 1000);

这根本无法工作,没有动画,没有错误或任何其他......


奇怪我正在这样做,因为如果我用所有对象启动页面(带有“设置”类的元素)我想加载为显示flex,然后用

隐藏它们
$('.settings').hide();

当我点击设置部分时,这似乎不适用于flexbox,但我已经转到另一个页面并在行为正确时回来...非常奇怪!


奇怪的是,我无法在小提琴手中重新创造它.... http://jsfiddle.net/FzqA7/ ..

1 个答案:

答案 0 :(得分:1)

如果我正确地理解了你的问题(这是一个很大的问题),听起来你已经遇到了我前一段时间遇到的同样的问题,也就是说,只有一半的动画一旦启动就会起作用(一次)滑下来,slideUp不起作用,反之亦然。)

我通过在动画的第一次迭代后添加“return”来解决它,虽然这是一个单击事件触发器,因此结束该功能对多个排列至关重要。

尝试:

    jQuery.fn.toggleFlexbox = function() {
        var elm = $(this[0]);
        if(elm.css('display') === "none"){
            elm.css('display', '-webkit-flex');
            return;
        }else{
            elm.slideUp('fast');
            return;
        }
    };

很抱歉,如果我完全误解了你的问题,但这有点模棱两可......