如何使DOM元素的高度可调整大小?

时间:2011-10-21 17:06:04

标签: javascript html css resizable jquery-resizable

我的ui中有一个小部件,位于浏览器右下角的固定位置。

我希望用户能够点击窗口小部件的标题部分,并能够向上拖动它并有效地增加窗口小部件的高度。小部件的底部,左侧和右侧属性将保持不变,但顶部应该能够更改为允许小部件的最大高度,如其css max-height所定义。

那里有这样的例子吗?我知道jQueryUI具有可调整大小的行为,但遗憾的是我无法在此项目中使用jQueryUI。然而,我们正在使用jQuery。

非常感谢任何提示或想法或jsfiddle exaples。只是为了让我朝着正确的方向前进。我看了一个可调整大小的CSS3,它在右下角放置了标准的大小调整图标,就像这个textarea。

2 个答案:

答案 0 :(得分:0)

也许这个插件有帮助吗?

http://dev.iceburg.net/jquery/jqDnR/

答案 1 :(得分:0)

只需jQuery就可以做到这一点。在我的头顶,你可能会做这样的事情:

<div id="widget">
    <h3 id="widget-header">Header</h3>
    some content
</div>

<script language="javascript" type="text/javascript">
    var clientY = 0;
    var offset = null;
    var changeSize = false;

    $(function () {
        $("#widget-header")
            .mousedown(function (event) {
                clientY = event.pageY;
                offset = $("#widget").offset();
                changeSize = true;
            })
            .mousemove(function (event) {
                if (changeSize) {

                    // get the changes
                    var difY = event.pageY - clientY;
                    offset.top += difY;

                    // animate the changes
                    $("#widget").offset({ top: offset.top, left: offset.left });
                    $("#widget").height($("#widget").height() - difY);

                    // update the new positions
                    clientY = event.pageY;
                }
            })
            .mouseup(function (event) { changeSize = false; })
            .mouseout(function(event) { changeSize = false; });
    });

</script>