如何在jquery

时间:2015-04-30 10:35:13

标签: javascript jquery html

我希望用户在动画尚未完成时无法执行任何操作。例如:无法再拖动它。

这是我的javascript源代码:

$( document ).ready(function() {    
        var top_ = $(".drag").position().top ;
        $(".drag").draggable({
        containment : "#box" ,
        stop: function(){
            $(this).stop(true,false).animate({
                top : top_ , 
                width : '100%'
            },1500,'easeOutCirc');
        },
        drag: function(event, ui){
            $(this).stop()
                        .css( "width", (100 - (ui.position.top / 10 ) + '%' ))
                        .css('float' , 'right');
        }
    });
});

HTML

<body>
    <div id = "box" style= "width : 100% ; height :500px">
        <div class = "drag" style= "border: 2px solid ; width : 100% ; height : 30px">
        </div>
    </div>
</body>

和JsFiddle:

http://jsfiddle.net/apss/CzkBu/102/

如何解决?

1 个答案:

答案 0 :(得分:2)

您可以在制作动画时停止以下方式拖动:

    $( document ).ready(function() {    
        var top_ = $(".drag").position().top ;

        $(".drag").draggable({
        containment : "#box" ,
        stop: function(){
            $(this).stop(true,false).animate({
                top : top_ , 
                width : '100%'
            },1500, function() {$('.drag').draggable('enable');});
            $('.drag').draggable( 'disable' );

        },
        drag: function(event, ui){
            $(this).stop()
                        .css( "width", (100 - (ui.position.top / 10 ) + '%' ))
                        .css('float' , 'right');
        }
    });    
 });

检查Fiddle here.

之后,您可以在动画完成后开始拖动$('.drag').draggable( 'enable' );

希望它有所帮助。