4

我在将 jquery animate 与 jquery ui 可调整大小的元素一起使用时遇到问题。如果我想为可调整大小元素的宽度设置动画,resizeHandle(在我的示例中为绿色)将在动画期间消失。例如,如果我为它的 left 属性设置动画,则调整大小的句柄将正确显示。

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

我的 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/

我不明白为什么会这样。有没有办法解决这个问题?

4

1 回答 1

2

尝试这个:

.rectangle{
    background: red;
    width: 200px;
    height: 200px;
    overflow: visible !important;  /* to fix disappearing re-size bar */
}
于 2013-06-11T19:48:09.200 回答