{"id":4126,"date":"2021-01-01T00:37:41","date_gmt":"2020-12-31T15:37:41","guid":{"rendered":"https:\/\/okamurax.com\/?p=4126"},"modified":"2021-01-03T16:02:55","modified_gmt":"2021-01-03T07:02:55","slug":"javascript-%e8%a6%81%e7%b4%a0%e3%82%92%e3%83%89%e3%83%a9%e3%83%83%e3%82%b0%e3%81%a7%e7%a7%bb%e5%8b%95","status":"publish","type":"post","link":"https:\/\/appbay.org\/?p=4126","title":{"rendered":"Javascript \u8981\u7d20\u3092\u30c9\u30e9\u30c3\u30b0\u3067\u79fb\u52d5"},"content":{"rendered":"<p>td\u8981\u7d20\u306e\u4e2d\u306b\u3042\u308bdiv\u8981\u7d20\u3092\u30c9\u30e9\u30c3\u30b0\u3067\u5225\u306etd\u8981\u7d20\u306e\u4e2d\u306b\u79fb\u52d5\u3002div\u8981\u7d20\u306b\u306finput\u30bf\u30b0\u3067\u30c7\u30fc\u30bf\u3092\u6301\u305f\u305b\u30af\u30ea\u30c3\u30af\u6642\u306b\u53d6\u5f97\u3002<\/p>\n<pre class=\"lang:js decode:true \">&lt;!DOCTYPE html&gt;\r\n&lt;html lang=\"ja\"&gt;\r\n&lt;head&gt;\r\n  &lt;meta charset=\"UTF-8\"&gt;\r\n  &lt;title&gt;test&lt;\/title&gt;\r\n\r\n  &lt;style&gt;\r\n\r\n  *{\r\n    margin: 0;\r\n    padding: 0;\r\n  }\r\n\r\n  td{\r\n    border: solid 1px #ccc;\r\n    width:300px;\r\n    height:300px;\r\n  }\r\n\r\n  .container{\r\n    background-color: black;\r\n    padding: 2px;\r\n\r\n    height: 40px;\r\n    width: 290px;\r\n    display: flex;\r\n    flex-wrap: wrap;\r\n  }\r\n\r\n  .moveArea{\r\n    width: 10%;\r\n    background-color: red;\r\n  }\r\n\r\n\r\n  .textArea{\r\n    width: 89%;\r\n    background-color: green;\r\n  }\r\n\r\n  .dataArea{\r\n    width: 1%;\r\n    background-color: blue;\r\n  }\r\n\r\n  .drag {\r\n    cursor: move;\r\n    position: absolute;\r\n    z-index: 1000;\r\n  }\r\n\r\n  &lt;\/style&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n\r\n&lt;table&gt;\r\n&lt;tr&gt;&lt;td&gt;&lt;\/td&gt;&lt;td&gt;&lt;\/td&gt;&lt;tr&gt;\r\n&lt;tr&gt;&lt;td&gt;&lt;\/td&gt;&lt;td id=\"start\"&gt;&lt;\/td&gt;&lt;tr&gt;\r\n&lt;\/table&gt;\r\n\r\n&lt;input type=\"textbox\" id=\"target_id\"&gt;\r\n&lt;input type=\"textbox\" id=\"target_age\"&gt;\r\n\r\n&lt;script&gt;\r\n\r\nwindow.onload = startup;\r\n\r\nfunction startup(){\r\n  \r\n  setup_rect({\"caption\":\"A\u90e8\u54c1\",\"id\":\"1\",\"age\":\"2\"});\r\n  setup_rect({\"caption\":\"B\u90e8\u54c1\",\"id\":\"2\",\"age\":\"3\"});\r\n\r\n}\r\n\r\nfunction setup_rect(value_list){\r\n\r\n  let containerElement = document.createElement(\"div\");\r\n  containerElement.classList.add(\"container\");\r\n\r\n  let moveAreaElement = document.createElement(\"div\");\r\n  moveAreaElement.addEventListener('mousedown', mouse_down);\r\n  moveAreaElement.innerHTML = \"\";\r\n  moveAreaElement.classList.add(\"moveArea\");\r\n  containerElement.appendChild(moveAreaElement);\r\n\r\n  let textAreaElement = document.createElement(\"div\");\r\n  textAreaElement.addEventListener('click', text_click);\r\n  textAreaElement.innerHTML = value_list[\"caption\"];\r\n  textAreaElement.classList.add(\"textArea\");\r\n  containerElement.appendChild(textAreaElement);\r\n\r\n  let dataAreaElement = document.createElement(\"div\");\r\n  dataAreaElement.innerHTML = \r\n  \"&lt;input type='hidden' name='id' value='\" + value_list[\"id\"] + \"'&gt;\" + \r\n  \"&lt;input type='hidden' name='age' value='\" + value_list[\"age\"] + \"'&gt;\";\r\n  dataAreaElement.classList.add(\"dataArea\");\r\n  containerElement.appendChild(dataAreaElement);\r\n\r\n  let target = document.querySelector(\"#start\");\r\n  target.appendChild(containerElement);\r\n}\r\n\r\nfunction text_click(event){\r\n\r\n  let target_id = document.getElementById(\"target_id\");\r\n  let target_age = document.getElementById(\"target_age\");\r\n\r\n  for(let el of this.nextElementSibling.children){\r\n\r\n    if (el.getAttribute(\"name\") === \"id\") target_id.setAttribute(\"value\", el.getAttribute(\"value\"));\r\n    if (el.getAttribute(\"name\") === \"age\") target_age.setAttribute(\"value\", el.getAttribute(\"value\"));\r\n    \r\n  }\r\n}\r\n\r\nfunction mouse_move(event){\r\n\r\n  let target = document.getElementsByClassName(\"drag\")[0];\r\n\r\n  let x = event.pageX - spaceX;\r\n  let y = event.pageY - spaceY;\r\n\r\n  target.style.top = y + \"px\";\r\n  target.style.left = x + \"px\";\r\n}\r\n\r\nlet spaceX = 0;\r\nlet spaceY = 0;\r\n\r\nfunction mouse_down(event){\r\n\r\n  spaceX = event.offsetX;\r\n  spaceY = event.offsetY;\r\n\r\n  let target = this.parentNode;\r\n  target.classList.add(\"drag\");\r\n\r\n  mouse_move(event);\r\n  document.addEventListener('mousemove', mouse_move);\r\n  target.addEventListener('mouseup', mouse_up);\r\n}\r\n\r\nfunction mouse_up(event){\r\n\r\n  spaceX = 0;\r\n  spaceY = 0;\r\n\r\n  this.classList.remove(\"drag\");\r\n  document.removeEventListener(\"mousemove\", mouse_move);\r\n  this.removeEventListener('mouseup', mouse_up);\r\n\r\n  let x = event.clientX;\r\n  let y = event.clientY;\r\n\r\n  let el = document.elementFromPoint(x,y);\r\n  if (el.tagName === \"TD\") el.appendChild(this);\r\n}\r\n\r\n&lt;\/script&gt;\r\n\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>td\u8981\u7d20\u306e\u4e2d\u306b\u3042\u308bdiv\u8981\u7d20\u3092\u30c9\u30e9\u30c3\u30b0\u3067\u5225\u306etd\u8981\u7d20\u306e\u4e2d\u306b\u79fb\u52d5\u3002div\u8981\u7d20\u306b\u306finput\u30bf\u30b0\u3067\u30c7\u30fc\u30bf\u3092\u6301\u305f\u305b\u30af\u30ea\u30c3\u30af\u6642\u306b\u53d6\u5f97\u3002 &lt;!DOCTYPE html&gt; &lt;html lang=&#8221;ja&#8221;&gt; &#038; &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/appbay.org\/?p=4126\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;Javascript \u8981\u7d20\u3092\u30c9\u30e9\u30c3\u30b0\u3067\u79fb\u52d5&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[4],"class_list":["post-4126","post","type-post","status-publish","format-standard","hentry","category-1","tag-javascript-typescript"],"_links":{"self":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/4126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4126"}],"version-history":[{"count":6,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/4126\/revisions"}],"predecessor-version":[{"id":4132,"href":"https:\/\/appbay.org\/index.php?rest_route=\/wp\/v2\/posts\/4126\/revisions\/4132"}],"wp:attachment":[{"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/appbay.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}