JavaScriptは対象に向けてドラッグ機能を使用して詳しく説明します。


本論文の実例は、JavaScriptがオブジェクトに向けて実現されるドラッグ機能を使用することを述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
オブジェクトに向かう前提があります。
  • 前提:すべてのものはオンラインに含まれていなければならない
  • 書き換え:関数ネスティングができないので、グローバル変数
  • があります。
  • プロセスは、以下の通りです。
  • onloadをコンストラクションに変更しました。
  • グローバル変数を属性に変更しました。
  • 関数を方法に書き換える
  • 
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>       -1</title>
    <style>
    #div1 {width: 100px; height: 100px; background: red; position: absolute;}
    </style>
    <script>
    window.onload = function() {
      var oDiv = document.getElementById('div1');
      oDiv.onmousedown = function(ev) {
        var ev = ev || event;
        var disX = ev.clientX - this.offsetLeft;
        var disY = ev.clientY - this.offsetTop;
        document.onmousemove = function(ev) {
          var ev = ev || event;
          oDiv.style.left = ev.clientX - disX + 'px';
          oDiv.style.top = ev.clientY - disY + 'px';
        }
        document.onmouseup = function() {
          document.onmousemove = document.onmouseup = null;
        }
      }
    }
    </script>
    </head>
    <body>
      <div id="div1"></div>
    </body>
    </html>
    
    
    ローカル変数をグローバル変数に変更します。
    
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>       -2</title>
    <style>
    #div1 {width: 100px; height: 100px; background: red; position: absolute;}
    </style>
    <script>
    var oDiv=null;
    var disX=0;
    var disY=0;
    window.onload = function() {
      oDiv = document.getElementById('div1');
      oDiv.onmousedown = fnDown;
    }
    function fnMove(ev) {
      var ev = ev || event;
      oDiv.style.left = ev.clientX - disX + 'px';
      oDiv.style.top = ev.clientY - disY + 'px';
    }
    function fnUp() {
      document.onmousemove = document.onmouseup = null;
    }
    function fnDown(ev) {
      var ev = ev || event;
      disX = ev.clientX - this.offsetLeft;
      disY = ev.clientY - this.offsetTop;
      document.onmousemove = fnMove;
      document.onmouseup =fnUp;
    }
    </script>
    </head>
    <body>
      <div id="div1"></div>
    </body>
    </html>
    
    
    参照ブロックの内容
    
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>       -2</title>
    <style>
    #div1 {width: 100px; height: 100px; background: red; position: absolute;}
    #div2 {width: 100px; height: 100px; background: red; position: absolute;top:120px;}
    </style>
    <script>
    window.onload=function(){
      new Drag('div1');
      new Drag('div2');
    }
    function Drag(id) {
      var _this=this;
      this.disX=0;
      this.disY=0;
      this.oDiv = document.getElementById(id);
      this.oDiv.onmousedown = function(){
        _this.fnDown()
      };
    }
    Drag.prototype.fnDown=function (ev) {
      var ev = ev || event;
      var _this=this;
      this.disX = ev.clientX - this.oDiv.offsetLeft;
      this.disY = ev.clientY - this.oDiv.offsetTop;
      document.onmousemove = function(){
        _this.fnMove();
      };
      document.onmouseup =function(){
        _this.fnUp();
      };
    }
    Drag.prototype.fnMove=function(ev) {
      var ev = ev || event;
      this.oDiv.style.left = ev.clientX - this.disX + 'px';
      this.oDiv.style.top = ev.clientY - this.disY + 'px';
    }
    Drag.prototype.fnUp=function () {
      document.onmousemove = null;
      document.onmouseup = null
    }
    </script>
    </head>
    <body>
      <div id="div1"></div>
      <div id="div2"></div>
    </body>
    </html>
    
    
    
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>       -2</title>
    <style>
    #div1 {width: 100px; height: 100px; background: red; position: absolute;}
    #div2 {width: 100px; height: 100px; background: red; position: absolute;top:120px;}
    </style>
    <script>
    window.onload=function(){
      new Drag('div1');
      new Drag('div2');
    }
    function Drag(id) {
      var _this=this;
      this.disX=0;
      this.disY=0;
      this.oDiv = document.getElementById(id);
      this.oDiv.onmousedown = function(){
        _this.fnDown()
      };
    }
    Drag.prototype.fnDown=function (ev) {
      var ev = ev || event;
      var _this=this;
      this.disX = ev.clientX - this.oDiv.offsetLeft;
      this.disY = ev.clientY - this.oDiv.offsetTop;
      document.onmousemove = function(){
        _this.fnMove();
      };
      document.onmouseup =function(){
        _this.fnUp();
      };
    }
    Drag.prototype.fnMove=function(ev) {
      var ev = ev || event;
      this.oDiv.style.left = ev.clientX - this.disX + 'px';
      this.oDiv.style.top = ev.clientY - this.disY + 'px';
    }
    Drag.prototype.fnUp=function () {
      document.onmousemove = null;
      document.onmouseup = null
    }
    </script>
    </head>
    <body>
      <div id="div1"></div>
      <div id="div2"></div>
    </body>
    </html>
    
    
    興味のある友達はオンラインHTML/CSS/JavaScriptコードを使ってツールを実行できます。
    もっと多くのJavaScriptに関する内容に興味がある読者は、当駅のテーマを見ることができます。「http://tools.jb51.net/code/HtmlJsRun」、「JavaScriptページ要素操作技術のまとめ」、「JavaScript操作DOM技巧まとめ」、「JavaScript切替特効とテクニックのまとめ」、「JavaScriptアニメーションの特効と技巧のまとめ」、「JavaScriptエラーとデバッグテクニックのまとめ」および「JavaScriptデータ構造とアルゴリズム技術のまとめ
    本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。