<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>拖动模态框</title> <style type="text/css"> *{ margin: 0; padding: 0; } #box{ position: relative; width: 596px; height: 396px; background-color: pink; border: 2px solid #333; margin: 100px auto; } #titl{ position: absolute; width: 100%; height: 60px; background-color: orange; color: #333333; font-size: 26px; line-height: 60px; text-align: center; font-weight: 700; } #tex{ position: absolute; width: 100%; height: 336px; top: 60px; /*background-color: olive;*/ font-size: 18px; } #tex ul li{ width: 560px; height: 70px; /*background-color: palegreen;*/ line-height: 70px; margin-top: 40px; list-style-type: none; margin-left: 20px; } #tex input{ width: 400px; height: 40px; } </style> </head> <body> <div id="box"> <div id="titl"> 用户登录 </div> <div id="tex"> <ul> <li>用户名:<input type="text" id="ipt1" placeholder="输入用户名"/> </li> <li>密 码:<input type="password" id="ipt2" placeholder="输入密码"/></li> </ul> </div> </div> <script type="text/javascript"> var titl=document.getElementById('titl'); var box=document.getElementById('box') // 鼠标按下时,获取鼠标在盒子内的坐标 titl.addEventListener('mousedown',function(e){ var boxLeft=box.offsetLeft; //盒子距离左侧外层边框的距离 // console.log(titlLeft) var boxTop=box.offsetTop; //盒子距离上面外层边框的距离 var eLeft=e.pageX; //鼠标距离最左边 var eTop=e.pageY; //鼠标距离最上边 var Le=eLeft-boxLeft; //鼠标距离盒子左边缘的距离 var Te=eTop-boxTop; // 随时赋值 document.addEventListener('mousemove',move) function move(e){ box.style.marginLeft=e.pageX-Le+'px' box.style.marginTop=e.pageY-Te+'px' } document.addEventListener('mouseup',function(){ document.removeEventListener('mousemove',move) }) }) </script> </body> </html>