在动画“宽度”属性时调整大小不可见的句柄

时间:2013-06-11 12:51:52

标签: jquery css jquery-ui jquery-animate jquery-ui-resizable

我使用jquery动画和jquery ui可调整大小的元素有问题。如果我想为可调整大小的元素的宽度设置动画,则resizeHandle(在我的示例中为绿色)将在动画期间消失。如果我为其左侧属性设置动画,则会正确显示调整大小句柄。

我把它归结为一个非常简单的例子来重现这个问题。

我的HTML看起来像这样:

<div id="myDiv" class="resizable rectangle"></div>
<button type="button" id="animate">Animate Width</button><br/>
<button type="button" id="animate2">Animate Left</button>

这是JS部分:

var widthState = 0;
var leftState = 0;

$(".resizable").resizable({
    handles: "e"
});

$("#animate").click(function(target){
    $(".resizable").animate({
        width: widthState > 0 ? 200 : 5,        
    },{
        complete: function(){
            widthState = widthState > 0 ? 0 : 1;
        }
    });
});

$("#animate2").click(function(target){
    $(".resizable").animate({
        left: leftState > 0 ? 0 : -200,        
    },{
        complete: function(){
            leftState = leftState > 0 ? 0 : 1;
        }
    });
});

最后是CSS:

.rectangle{
    background: red;
    width: 200px;
    height: 200px;
}

.ui-resizable-handle{
    background: green;
}

我还在一个有效的JSFiddle中将它们放在一起:

http://jsfiddle.net/HymFB/1/

我无法弄清楚为什么会这样。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:2)

试试这个:

.rectangle{
    background: red;
    width: 200px;
    height: 200px;
    overflow: visible !important;  /* to fix disappearing re-size bar */
}