画像移動

画像移動 JavaScript
ファイル
click_move.js


MoveImage に戻る

// JavaScript Document

var x = 20;
//画像左端から画像中心までの距離
var y = 20;
//画像上端から画像中心までの距離
//画像の中心がXY座標(0,0)にきた時
var x1 = 88;
/*
 ブラウザ画面左端から画像左端
 までの距離
*/
var y1 = 288;
/*
 ブラウザ画面上端から画像上端
 までの距離
*/ 
var flag = false;
//function dragImg を実行するか否か
var imgName;
//img0~img5 のいずれかが設定される

var	pos_y0;
//クライアントY座標
var	pos_x0;
//クライアントX座標
var	scr_y0;
//プラウザ画面スクロ-ルY座標値
var	scr_x0;
//プラウザ画面スクロ-ルX座標値
var	pos_y1;
//= pos_y0 + scr_y0;
var	pos_x1;
//= pos_x0 + scr_x0;
var	pos_y;
//pos_y1-y1 を四捨五入
var	pos_x;
//pos_x1-x1 を四捨五入
var idn;
//img0~5 の img を除いた数字部分

var	str = new Array();
/*
 str[0]=始点0 X座標
 str[6]=始点0 Y座標
 ~~~~
 str[5]=終点5 X座標
 str[11]=終点0 Y座標
*/
var flagNa;
//str[ ]が数値でない時 true

var	err;
//座標値のエラ数

window.document.onmousemove
 = dragImg;

function dragOn(n) {
  imgName = n;
  if(flag){
    flag = false;
  } else {
    flag = true;
  }
  return flag;
}

function dragImg(event) {
  if(!flag) return;
  pos_y0 = event.clientY - y;
  pos_x0 = event.clientX - x;
	
  scr_y0 = pageYOffset;
  scr_x0 = pageXOffset;
 
  pos_y1 = pos_y0 + scr_y0;
  if(pos_y1 > 500 + y1)
    pos_y1 = 500 + y1;
  if(pos_y1 < -100 + y1)
    pos_y1 = -100 + y1;
	
  pos_x1 = pos_x0 + scr_x0;
  if(pos_x1 > 500 + x1)
    pos_x1 = 500 + x1;
  if(pos_x1 < -100 + x1)
    pos_x1 = -100 + x1;
    
  document.getElementById(imgName).
    style.visibility = "hidden";
  document.getElementById(imgName).
    style.top = pos_y1 + "px";
  document.getElementById(imgName).
    style.left = pos_x1 + "px";
  document.getElementById(imgName).
    style.visibility = "visible";

  pos_y = Math.round(pos_y1-y1);
  pos_x = Math.round(pos_x1-x1);

  idn = eval(imgName.slice(-1));
  document.forms[0].
    elements[idn].value = pos_x;
  document.forms[0].
    elements[idn + 6].value
      = pos_y;
}

function check() {
 err = 0

 for (var i = 0; i <= 11; i++) {
  str[i] =
   document.forms[0].elements[i].
    value;
  if (str[i] == ""){
   err = err + 1;	
   alert("数値が入力されていません");
   }
  if (str[i] < -100){
   err = err + 1;	
   alert(
   "XY座標値は -100 以上を入力ください"
   );
  }
  if (str[i] > 500){
   err = err + 1;	
   alert(
   "XY座標値は 500 以下を入力ください"
   );
  }
  flagNa = isNaN(str[i]);
  if (flagNa == true){
   err = err + 1;	
   alert(
   "数値ではない入力値があります"
   );
  }
 } // for ル-プ END
 return err;
} // check END

function set() {
// 制御点描画開始
  check();
 if (err == 0){ // ①開始
  for (var j = 0; j <= 5; j++) {
   str[j] = eval(str[j]) + x1;
   str[j+6] = eval(str[j+6]) + y1;
   var k = "img" + j;
   document.getElementById(k).
    style.visibility = "hidden";
   document.getElementById(k).
    style.left = str[j] + "px";
   document.getElementById(k).
    style.top = str[j+6] + "px";
   document.getElementById(k).
    style.visibility = "visible"; 
  }
 }// if文①完了
}// set END