js登録を実現してウィンドウをドラッグします。


本論文の例では、js登録ドラッグ・ウィンドウを実現するための具体的なコードを共有します。参考にしてください。具体的な内容は以下の通りです。
このケースを作る二つのポイント:
1、箱をjsで可視領域の中央に表示する
cssで箱を中に置いて表示することができますが、jsの方がいいです。
方法:
ボックスのleft値=(視認領域の幅-箱自体の幅)/2
箱のtop値=(可視領域の高さ-箱自体の高さ)/2
箱が真ん中に表示されます。
2、まずマウスを押してから、ドキュメント全体をマウスで移動すると、箱の位置がマウスに合わせて移動します。
この点に注意したい点:
1)マウスを押すと、箱X方向のマウスの位置=event.clienX-箱のoffset Left
マウスは箱のY方向の位置=event.client Y-箱のoffset Topに対して;
2)マウスが動いている時、箱のleft値=event.client X-マウスが箱X方向に対している位置
箱のtop値=event.client Y-マウスは箱のY方向の位置に対して
注意1)、2)のevent.client X/clientYは同じ値ではなく、それぞれ異なるイベントから来ています。

<!DOCTYPE html>
<html lang="en">
<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>Document</title>
  <style>
    *{
      padding: 0;
      margin: 0;
    }
    button {
      width: 80px;
      height: 30px;
      display: block;
      margin: 0 auto;
      background-color:#3b7ae3;
      border-style: none;
      border-radius: 5px;
      color: #ffffff;
      cursor: pointer;
    }
    .mask {
      position: absolute;
      top:0;
      width: 100%;
      height: 1000px;
      background-color:black;
      opacity: 0.75;
      z-index: 99;
    }
    .login {
      width: 350px;
      height: auto;
      border: 1px solid #fff;
      position: absolute;
      top:0;
      left: 0;
      z-index: 1000;
    }
    .title {
      width:330px;
      height: 50px;
      padding-left: 20px;
      line-height: 50px;
      background-color: #eee;
      position: relative;
      cursor: move;
    }
    span {
      position: absolute;
      right:10px;
      font-size: 30px;
      font-weight: 300;
      cursor: pointer;
    }
    .current {
      padding: 10px 15px;
      background-color: #fff;
    }
    .user,
    .password{
      margin-bottom: 10px;
    }
    .pt {
      width:308px;
      height: 40px;
      padding-left: 10px;
    }
    .submit {
      width: 320px;
      height: 48px;
      background-color:#3b7ae3;
      color: #fff;
      font-size: 16px;
      border-style: none;
      cursor: pointer;
    }
  </style>
  <script>
    window.onload = function(){
      //     
      function $(id) {return document.getElementById(id);}
      //          
      var clientwidth = document.documentElement.clientWidth || document.body.clientWidth;
      var clientHeight = document.documentElement.clientHeight || document.body.clientHeight;
      //       
      $("btn").onclick = function(){
        //   mask
        var mask = document.createElement("div");
        mask.className = "mask";
        // mask             
        mask.style.height = clientHeight + "px";
        document.body.appendChild(mask);
        //   login
        var login = document.createElement("div");
        login.className = "login";
        login.id = "_login";
        login.innerHTML = '<div class="title" id="_title">        '+' <span id="close">×</span>'+' </div>'+' <div class="current">'+
        '<div class="user">'+' <input type="text" class="pt" placeholder="  /  /   ">'+
        '</div>'+'<div class="password">'+'<input type="text" class="pt" placeholder="     ">'+
        '</div>'+'<div>'+' <input type="button" class="submit" value="  ">'+'</div>';
        document.body.appendChild(login);

        //   login        
        login.style.left= (clientwidth - login.offsetWidth)/2 + "px";
        login.style.top = (clientHeight - login.offsetHeight)/2 + "px";
        
        //         ,login        
        window.onresize = function(){
          if(window.innerWidth != null) // ie9+      
          {
            clientwidth = window.innerWidth;
            clientHeight = window.innerHeight;
          }
          else if(document.compatMode == "CSS1Compat")//     
          {
            clientwidth = document.documentElement.clientX;
            clientHeight = document.documentElement.clientY;
          }
          else 
          {
            clientwidth = document.body.clientX;
            clientHeight = document.body.clientY;
          }
        login.style.left= (clientwidth - login.offsetWidth)/2 + "px";
        login.style.top = (clientHeight - login.offsetHeight)/2 + "px";
        mask.style.height = clientHeight + "px";
        }
        //     title    
        $("_title").onmousedown = function(event){
          var event = event || window.event;
          //          
          var moveX = event.clientX - login.offsetLeft;
          var moveY = event.clientY - login.offsetTop;
          document.onmousemove = function(event){
          var event = event || window.event;
          //         
          var clientX1 = event.clientX;
          var clientY1 = event.clientY;
          //        =         -             
          var loginX = clientX1 - moveX;
          var loginY = clientY1 - moveY;
          //   login           
          if(loginX <= 0)
          {
            loginX = 0;
          }
          else if(loginX >= clientwidth - $("_login").offsetWidth)
          {
            loginX = clientwidth - $("_login").offsetWidth;
          }
          if(loginY <= 0)
          {
            loginY = 0;
          }
          else if(loginY >= clientHeight - $("_login").offsetHeight)
          {
            loginY = clientHeight - $("_login").offsetHeight;
          }
          $("_login").style.left = loginX + "px";
          $("_login").style.top = loginY + "px";
        }
        document.onmouseup = function(){
          document.onmousemove = null;
      }
      //       
      $("close").onclick = function(){
        document.body.removeChild(mask);
        document.body.removeChild(login);
      }
    }
    }
    }
  </script>
</head>
<body>
  <button id="btn">  </button>
  <!-- <div class="mask" id="_mask"></div>
  <div class="login" id="_login">
    <div class="title" id="_title">
            
      <span id="close">×</span>
    </div>
    <div class="current">
      <div class="user">
        <input type="text" class="pt" placeholder="  /  /   ">
      </div>
      <div class="password">
        <input type="text" class="pt" placeholder="     ">
      </div>  
      <div >
        <input type="button" class="submit" value="  ">
      </div>    
    </div> -->
    
  </div>
</body>
</html>
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。