原生JS实现窗口拖拽效果

Bertha 。 2024-04-28 13:10 155阅读 0赞

按住鼠标按键,可以实现注册窗口自由拖拽效果;

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBA5oiR5piv5rOi5ZOp5Liq5rOi_size_16_color_FFFFFF_t_70_g_se_x_16

  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="en">
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style>
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. }
  11. .nav {
  12. height: 30px;
  13. background: #87cefa;
  14. line-height: 30px;
  15. padding-left: 30px;
  16. }
  17. .nav a {
  18. color: #fff;
  19. text-align: center;
  20. font-size: 14px;
  21. text-decoration: none;
  22. }
  23. .d-box {
  24. width: 400px;
  25. height: 300px;
  26. border: 5px solid #eee;
  27. box-shadow: 2px 2px 2px 2px #666;
  28. position: absolute;
  29. top: 50%;
  30. left: 50%;
  31. background-color: white;
  32. /* 不让文字被选中 */
  33. user-select: none;
  34. transform: translate(-50%, -50%);
  35. }
  36. .hd {
  37. width: 100%;
  38. height: 35px;
  39. background-color: #87cefa;
  40. border-bottom: 1px solid #369;
  41. line-height: 35px;
  42. color: white;
  43. cursor: move;
  44. }
  45. #box_close {
  46. float: right;
  47. cursor: pointer;
  48. }
  49. </style>
  50. </head>
  51. <body>
  52. <div class="nav">
  53. <a href="javascript:;" id="register">注册信息</a>
  54. </div>
  55. <div class="d-box" id="d_box">
  56. <div class="hd" id="drop">注册信息 (可以拖拽)
  57. <span id="box_close">【关闭】</span>
  58. </div>
  59. <div class="bd"></div>
  60. </div>
  61. <script>
  62. // 获取盒子
  63. var box = document.getElementById('d_box');
  64. // 获取盒子标题区块
  65. var drop = document.getElementById('drop');
  66. drop.onmousedown = function (e) {
  67. // 兼容性处理
  68. var e = e || window.event;
  69. // 当鼠标在盒子标题区域按下的时候,获取鼠标在盒子里面的下标
  70. // 鼠标在盒子的下标 = 鼠标在页面的的下标 - 盒子的偏移量;
  71. var x = e.pageX - box.offsetLeft;
  72. var y = e.pageY - box.offsetTop;
  73. console.log(x + " " + y);
  74. document.onmousemove = function (e) {
  75. // 兼容性处理
  76. var e = e || window.event;
  77. // 当鼠标在页面上移动的时候。求盒子的坐标
  78. // 盒子的坐标 = 鼠标当前在页面中的位置 - 鼠标在盒子中的位置
  79. var boxX = e.pageX - x;
  80. var boxY = e.pageY - y;
  81. box.style.left = boxX + "px";
  82. box.style.top = boxY + "px";
  83. }
  84. }
  85. // 当鼠标在页面文档中弹起,移除移动跟随
  86. document.onmouseup = function () {
  87. document.onmousemove = null;
  88. }
  89. // 点击关闭按钮,隐藏盒子
  90. var box_close = document.getElementById('box_close');
  91. box_close.onclick = function () {
  92. box.style.display = 'none';
  93. }
  94. </script>
  95. </body>
  96. </html>

发表评论

表情:
评论列表 (有 0 条评论,155人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JavaScript 效果实现

      我们在访问一些网站时,会发现有些内容是可以拖拽的,比较方便,那么使用JS怎么实现呢?今天结合代码展示下拖拽效果的实现。  这里需要先熟悉下几个JS事件: onmouse