jQueryマウスで画像をドラッグする機能を実現します。


この例では、jQueryを利用してマウスの画像を操作する機能を実現します。
まずwrapperを設定します。wrapper内の座標は画像移動の座標です。

 #wrapper{
      width: 1000px;
      height:1000px;
      position:relative;
    }
画像divを設定します。このdivはドラッグしたいdivです。

#div1{
      position: absolute;
      left:0px;
      top:0px;
      width: 300px;
      height: 200px;
      background: url("d:/Pictures/Earth.jpg");
      background-size:contain;
    }
上にはwrapperが設けられていますが、div 1はabsoluteとして位置づけられています。
次にドラッグのアルゴリズムを設計します。
考えは以下の通りです
1.マウスをクリックした時にdivをマウスに従って移動させます。
2.マウスを離す時はフォローを停止します。
まず関数が必要です。彼はdivの座標を現在のマウスの位置に変えます。
まず、いくつかの変数を定義して、現在のマウスの座標と画像の座標を保存します。

  var timer;
      var mouseX=0;
      var mouseY=0;
      var pic_width = parseInt($("#div1").css("width")); 
      var pic_height = parseInt($("#div1").css("height")); 
今はwrapperにイベントモニターを追加して、マウスがwrapperの中を移動する時、変数mousex、mouseyの値を修正します。

$("#wrapper").mousemove(function(e){
        mouseX = e.clientX;
        mouseY = e.clientY;
      });
フォロワー関数を作成し、タイマーで呼び出します。

$("#div1").mousedown(function(){
        timer=setInterval(follow,10);
      });
      $("#div1").mouseup(function(){
        clearInterval(timer);
      });
      var follow = function(){

        $("#div1").css("left",mouseX-pic_width/2);
        $("#div1").css("top",mouseY-pic_height/2);
      };
完全コードは以下の通りです。

<!doctype html>
<html>
  <head>
    <script type = "text/javascript" src = "jquery.js"></script>
    <style type = "text/css">
    #wrapper{
      width: 1000px;
      height:1000px;
      position: relative;
      background: linear-gradient(lightblue,white);
      font-size: 40px;
    }
    #div1{
      position: absolute;
      left:0px;
      top:0px;
      width: 300px;
      height: 200px;
      background: url("d:/Pictures/Earth.jpg");
      background-size:contain;
    }
    </style>
  </head>
  <body>
    <div id = "wrapper">
      Lorem, ipsum dolor sit amet consectetur adipisicing elit. Impedit numquam accusamus explicabo praesentium laudantium et accusantium, ab ipsum, excepturi necessitatibus quos iste ad qui deleniti sed debitis reiciendis quam nisi.
      <div id = "div1">

      </div>
    </div>
    
    
    <script>
      
      var timer;
      var mouseX=0;
      var mouseY=0;
      var pic_width = parseInt($("#div1").css("width")); 
      var pic_height = parseInt($("#div1").css("height")); 

      
      $("#wrapper").mousemove(function(e){
        mouseX = e.clientX;
        mouseY = e.clientY;
      });

      $("#div1").mousedown(function(){
        timer=setInterval(follow,10);
      });
      $("#div1").mouseup(function(){
        clearInterval(timer);
      });
      var follow = function(){

        $("#div1").css("left",mouseX-pic_width/2);
        $("#div1").css("top",mouseY-pic_height/2);
      };
    </script>
  </body>
</html>
最終効果:

ここでjQueryについてはマウスで画像をドラッグする機能を実現する文章を紹介します。これまでの文章を検索したり、下の関連記事を見たりしてください。これからもよろしくお願いします。