或者你可以使用 jQuery-UI 来制作一个可调整大小的窗口。
我继续解决了我在尝试使用带有滚动溢出的 div 的 jQuery ui 可调整大小小部件时遇到的一些问题。问题是调整大小手柄位于滚动条内。
为了解决这个问题,我制作了三个相互嵌套的 div
第一个是 Wrapper,您可以在其中设置 div 的起始大小。
第二个用于句柄,其大小应设置为其父 div(包装器 div)的 100%。您将不得不调整 z-index 以将它们定位到最终的滚动条上。
第二个 div 还应该包含可拖动的句柄 div 和所有窗口内容所在的窗口 div。
可拖动手柄 div (.draggable) 和窗口 div (.window) 都需要相对定位。以便它们彼此正确定位,因此可拖动手柄不会超过滚动条的顶部。
.window div 应该像之前的 div 一样缩放到父 div 的 100%。这个会有滚动溢出。现在,因为当您使用 jQuery ui 调整句柄 div 的大小时,这等于 100% 的句柄 div,所以它也会调整此 div 的大小。
将可拖动的 div 设置为 100% 的宽度和任何您想要的高度,但任何添加的高度都会将窗口 div 推到比句柄 div 更远的位置,您需要向句柄 div 添加等量的 padding-bottom 以解决这个问题。您还需要将句柄 div 溢出设置为可见。
毕竟,为不同的元素添加任何你想要的样式,你应该会很好。这很难解释,但我希望它是有道理的。所有的代码都在下面,希望它能比我的漫无目的更好地解释。这绝对可以让您将窗口调整得更小,移动 div,并且如果您想要它,您的 div 也会滚动溢出。
HTML
<!DOCtype html>
<html lang="en">
<head>
<title>Adjustable Window</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="../css/adjWindow.css">
<link rel="stylesheet" type="text/css" href="../jquery-ui-1.11.4/jquery-ui.min.css">
<script type="text/javascript" src="../js/jquery.min.js"></script>
<script type="text/javascript" src="../jquery-ui-1.11.4/jquery-ui.min.js"></script>
<script type="text/javascript" src="../js/adjWin.js"></script>
</head>
<body id="top">
<div class="winWrap">
<div class="handles">
<div class="draggable"><p>Window Title</p></div>
<div class="window">
<div class="windowContent">
</div>
</div>
</div>
</div>
</body>
</html>
CSS
.winWrap {
position: relative;
width: 500px;
height: 500px;
}
.draggable {
position: relative;
width: 100%;
height: 20px;
box-shadow: inset 0px 0px 6px rgba(0,0,0,0.9);
background-color: rgba(255,255,255,0.5);
text-align: center;
z-index: 1;
}
.draggable p {
padding: 2px;
margin: 0px;
cursor: default;
}
.handles {
position: relative;
width: 100%;
height: 100%;
padding-bottom: 20px;
overflow: visible;
box-shadow: 20px 15px 20px rgba(0,0,0,0.4);
z-index: 1;
}
.window {
position: relative;
width: 100%;
height: 100%;
overflow: scroll;
background-color: rgba(0,0,0,0.1);
box-shadow: inset 0px 0px 10px rgba(0,0,0,0.7);
}
.windowContent{
position: absolute;
}
jQuery 和 jQuery-UI 最好将 minHeight 和 minWidth 选项与可调整大小的小部件一起使用,否则您的窗口将能够调整到几乎没有,并且可能会导致一些烦人的副作用,例如使 div 太小以至于您需要重新加载要单击调整大小手柄的页面。在我看来,它看起来也更专业。
对于可拖动小部件,您将包装器定位为要移动的整个 div,然后给它一个我们放置在窗口 div 中的可拖动 div 的句柄。
/*global $, jQuery, alert*/
$(document).ready(function () {
'use strict';
$('.handles').resizable({minHeight: 100, minWidth: 100});
$('.winWrap').draggable({handle: '.draggable'});
});