如何淡化和滑动jQuery动画

时间:2012-06-16 23:49:56

标签: jquery jquery-ui

我写了这个,但动画正在发生碰撞。 如何更改此功能才能正常工作?

 function () { 
$("#presentState").show("slide", { duration: 1500, easing: 'easeOutBack', direction: directionActive }); 
$("#presentState").fadeIn( 1500,  'easeOutBack'); 
}

我也尝试了这个,它根本不起作用。

 $("#presentState").show("slide", { duration: 1500, easing: 'easeOutBack', direction: directionActive }).fadeIn(1500, 'easeOutBack').dequeue();

3 个答案:

答案 0 :(得分:4)

您可以通过将属性映射发送到 animate 来为多个CSS属性设置动画:

隐藏:

$("#presentState").animate({ marginLeft: "-1000px", opacity: 0 }, 1500);

显示:

$("#presentState").animate({ marginLeft: "0", opacity: 1 }, 1500);

答案 1 :(得分:2)

这就是我最终做的事情:

function () {
$("#presentState").show("slide", { duration: 1500, easing: 'easeOutBack', direction: directionActive }).hide(); 
$("#presentState").fadeIn(1500).dequeue(); 
}

我必须在第一次函数调用结束时使用.hide();

答案 2 :(得分:0)

这是我在stackoverflow中的第一个回复,我希望得到你的协议,谢谢〜

我已经添加了2个基于jquery UI效果的效果,它们是slideFadein和slideFadeout你可以从名称中形成效果:幻灯片和淡入/淡出同时。用法与其他效果类似:

//this will slide up and fade out the element
$("#effect").effect("slideFadein",{},500);

//this will remove the element after effect end
$("#effect").effect("slideFadein",{mode:'remove'},duration);

jquery UI效果:jqueryui.com/effect

的jsfiddle:jsfiddle.net/rw42S

你可以通过在javascript文件中保存以下代码来使用这两种效果,并在jquery.ui.js之后包含它们或者只是将它们粘贴到jquery.ui.js中

这是我的代码:

(function( $, undefined ) {
    $.effects.effect.slideFadeout = function(o,done){
        // create element
        var el = $( this ),
            props = [ "width" , "height" , "opacity"],
            speed = o.duration || 500,
            // 'hide' or 'remove'
            mode = o.mode || 'hide',
            animation,wrapper;

        // save properties
        $.effects.save( el, props );

        animation = {
            height: "0px",
            opacity: "0"
        };

        // create wrapper
        wrapper = $.effects.createWrapper( el ).css({
            overflow: "hidden"
        });

        // animate
        wrapper.animate(animation,speed,'swing',function(){
            if(el[mode]) el[mode]();
            // restore properties
            if(mode == 'hide') $.effects.restore( el, props );
            // remove wrapper
            $.effects.removeWrapper( el );
            // callback
            done();
        });
    };

    $.effects.effect.slideFadein = function(o,done){
        // create element
        var el = $( this ),
            speed = o.duration || 5000,
            props = [ "height" , "opacity"],
            animation,wrapper;

        animation = {
            height: el.outerHeight(true) + "px",
            opacity: "1"
        };

        // save properties
        $.effects.save( el, props );

        // show element to get correct width(if the element has no width)
        el.css({ height: "0px" }).show();

        // create wrapper
        wrapper = $.effects.createWrapper( el ).css({
            overflow: "hidden",
            opacity: "0",
            height: "0px"
        });

        // restore properties
        $.effects.restore( el, props );

        // animate
        wrapper.animate(animation,speed,'swing',function(){
            // remove wrapper
            $.effects.removeWrapper( el );
            // callback
            done();
        });
    };
})(jQuery);