javascript – 具有绝对位置和底部属性的jQuery UI可拖动

我正在使用jQuery UI创建一个可拖动的< div>. < div>使用CSS绝对定位到右下角或左上角
.dragBox {
    position: absolute;
    width: 140px;
    min-height: 140px; /* I need to use min-height */
    border: 3px solid black;
    padding: 10px;
}
.bottom {
    bottom: 5px; /* causes Box to resize when dragged */
    right: 5px;
}
.top {
    top: 5px; /* does not cause Box to resize */
    left: 5px;
}

HTML看起来像这样:

<div class="dragBox bottom">
    Bottom Box :(
</div>
<div class="dragBox top">
    Top Box :)
</div>

JavaScript是$(‘.dragBox’).draggable();制作< div>可拖动的元素.左上角< div>按预期工作,但右下角< div>拖动时调整大小.如果我将.dragBox的最小高度更改为高度,我会看到两个框的预期行为,但我需要使用min-height,因为我不知道内部内容的长度.

如何定位< div>在右下方并启用拖动而不使用< div>拖动时调整大小?左上角和右下角< div>元素的行为方式应该相同.

DEMO(我使用的是Chrome 27和Safari 6)

解决方法

jQuery的draggable通过操纵css top和left值来工作.如果框中设置了顶部和底部值(并且没有静态高度),则框将拉伸以匹配两个属性.这就是导致调整大小的原因.

解决方法可能是在框上设置静态高度,或者如果这不是一个选项,则在创建draggable时将底部值设置为“auto”,并同时获取当前的“top”位置以确保元素保持不变.

$('.dragBox').draggable({
    create: function( event,ui ) {
        $(this).css({
            top: $(this).position().top,bottom: "auto"
        });
    }
});

http://jsfiddle.net/expqj/8/

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...