效果图如下(有个鼠标点着灰色条拖动它的哈):
接下来look look你们期盼的代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body{ overflow: hidden; } .moveBar{ width: 300px; height: 15px; background-color: #aaa; cursor: move; } .block{ width: 500px; height: 350px; font-size: 28px; display: flex; align-items: center; justify-content: center; background-color: #0062CC; } .box{ width: 300px; height: 300px; font-size: 28px; background-color: aquamarine; position:relative; } </style> <script> var store = { ifDrag : false } function onStartDrag(e) { let event = window.event || arguments.callee.caller.arguments[0]; store.ifDrag = true; store.startPos = event.pageY; document.body.style.userSelect = "none"; } function onDrag(e) { if (store.ifDrag) { let box = document.getElementById('box'); let event = window.event || arguments.callee.caller.arguments[0]; let top = box.style.top; box.style.top = (top.substr(0, top.length-2) - (store.startPos - event.pageY)) + "px"; store.startPos = event.pageY; } } function onEndDrag(){ if (store.ifDrag) document.body.style.userSelect = "text"; store.ifDrag = false; } </script> </head> <body οnmοusemοve="onDrag()" οnmοuseup="onEndDrag()"> <div class="block">阻挡块</div> <div id="box" class="box"> <div class="moveBar" οnmοusedοwn="onStartDrag();" οnmοuseup="onEndDrag()"></div> <div align="center" style="margin-top: 120px">可上拉和下拉的框</div> </div> </body> </html>