【发布时间】:2021-09-23 15:42:36
【问题描述】:
我正在我的 HTML 页面底部创建一个窗口,我希望在用户单击和拖动时可以调整其大小。这是我目前所拥有的:
var main = document.getElementById("dragWindow")
var dragTop = document.querySelector("#dragWindow .draggerTop")
var dragTopDown = false
dragTop.addEventListener("mousedown", function() {
dragTopDown = true
})
document.body.addEventListener("mouseup", function() {
dragTopDown = false
})
document.body.addEventListener("mousemove", function(e) {
if (dragTopDown == false) {
return
}
var h = (window.innerHeight - e.clientY) + "px"
main.style.top = "calc(100% - " + h + ")"
})
#dragWindow {
background: lightgray;
position: absolute;
bottom: 0;
left: 0;
right: 0;
top: calc(100% - 150px);
}
#dragWindow .draggerTop {
position: absolute;
left: 0;
right: 0;
top: 0;
height: 5px;
background: gray;
cursor: ns-resize;
}
Page content here...
<div id="dragWindow">
<div class="draggerTop"></div>
</div>
在上面的例子中,拖动器不能很好地工作。它很慢,大部分时间都不会移动。有什么我想念的吗?它主要似乎难以向上移动。此外,当您释放鼠标时,它仍然是可拖动的。
我知道有 CSS resize 属性,但是,我正在尝试使用 js 制作自定义版本。
【问题讨论】:
标签: javascript html css resize draggable