HTML ãã©ãã° & ããããã¤ã³ã¿ã¼ãã§ã¤ã¹ã«ãããã¢ããªã±ã¼ã·ã§ã³ã¯ãã©ã¦ã¶ã¼ã§ãã©ãã° & ããããæ©è½ã使ç¨ãããã¨ãã§ãã¾ãã
ã¦ã¼ã¶ã¼ã¯ãã¦ã¹ã§ãã©ãã°å¯è½ãªè¦ç´ ã鏿ãããã®è¦ç´ ãããããå¯è½ãªè¦ç´ ã¸ãã©ãã°ãããã¦ã¹ãã¿ã³ãé¢ããã¨ã§ãããããããã¨ãã§ãã¾ãããã©ãã°æä½ã®éããã©ãã°å¯è½ãªè¦ç´ ã®åéæã®è¡¨ç¤ºããã¦ã¹ãã¤ã³ã¿ã¼ã«ç¶ãã¾ãã
ãã©ãã°å¯è½ã«ã§ããè¦ç´ ã®ç¨®é¡ããã©ãã°å¯è½ãªè¦ç´ ãçæãããã£ã¼ãããã¯ã®ç¨®é¡ãããã³ããããå¯è½ãªè¦ç´ ã¯ã«ã¹ã¿ãã¤ãºã§ãã¾ãã
ãã® HTML ãã©ãã° & ããããã®æ¦è¦ã§ã¯ãã¤ã³ã¿ã¼ãã§ã¤ã¹ã®èª¬æãã¢ããªã±ã¼ã·ã§ã³ã«ãã©ãã° & ããããã®ãµãã¼ãã追å ããããã®åºæ¬çãªã¹ããããããã³ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ç¸äºéç¨æ§ã®è¦ç´ãããã¾ãã
ãã©ãã°ã¤ãã³ãHTML ãã©ãã° & ãããã ã§ã¯ DOM ã¤ãã³ãã¢ã㫠㨠ãã¦ã¹ã¤ãã³ã ãç¶æ¿ãã ãã©ãã°ã¤ãã³ã ã使ãã¾ããå ¸åçãªãã©ãã°æä½ã¯ãã¦ã¼ã¶ã¼ããã©ãã°å¯è½ãªè¦ç´ ã鏿ããã¨ãã«å§ã¾ããã¦ã¼ã¶ã¼ãããããå¯è½ãªè¦ç´ ã«è¦ç´ ããã©ãã°ããã¨ãã«ç¶ç¶ããã¦ã¼ã¶ã¼ããã©ãã°å¯è½ãªè¦ç´ ãé¢ããã¨ãã«çµããã¾ãã
ãã©ãã°æä½ã®ããã ãããã¤ãã®ã¤ãã³ã種é¡ãçºçãããã®ãã¡ããã¤ã㯠drag
ã dragover
ã¤ãã³ãã®ããã«ãè¤æ°çºçãããã¨ãããã¾ãã
ããããã®ãã©ãã°ã¤ãã³ãã®ç¨®é¡ã«ã¯ãé¢é£ããã¤ãã³ããã³ãã©ã¼ãããã¾ãã
ã¤ãã³ã çºçããæ¡ä»¶â¦drag
â¦ãã©ãã°é
ç®ï¼è¦ç´ ã鏿ããã¹ãï¼ããã©ãã°ãããå ´å dragend
â¦ãã©ãã°æä½ã®çµäºï¼ãã¦ã¹ãã¿ã³ãé¢ããããEsc ãã¼ãæ¼ãããããå ´åã詳ããã¯ãã©ãã°ã®çµäºãåç
§ãï¼ dragenter
â¦ãã©ãã°é
ç®ãæå¹ãªãããã対象ã«å
¥ã£ãå ´åï¼ãã©ãã°ã¿ã¼ã²ããã®ç¹å®ãåç
§ï¼ dragleave
â¦ãã©ãã°é
ç®ãæå¹ãªãããã対象ãé¢ããå ´å dragover
â¦ãã©ãã°é
ç®ãæå¹ãªãããã対象ã«ãã©ãã°ãããå ´åãæ°ç¾ããªç§ãã¨ã« dragstart
â¦ã¦ã¼ã¶ã¼ãé
ç®ããã©ãã°éå§ããå ´åï¼ãã©ãã°æä½ã®éå§ ãåç
§ï¼ drop
â¦é
ç®ãæå¹ãªãããã対象ã«ãããããããå ´åï¼ããããã®å®è¡ ãåç
§ï¼
ã¡ã¢: dragstart
㨠dragend
ã¤ãã³ãã¯ãã©ã¡ãã OS ãããã©ã¦ã¶ã¼ã«ãã¡ã¤ã«ããã©ãã°ããã¨ãã«ã¯çºçãã¾ããã
HTML ãã©ãã° & ããããã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ DragEvent
ãDataTransfer
ãDataTransferItem
ãDataTransferItemList
ã§ãã
DragEvent
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã«ã¯ãã³ã³ã¹ãã©ã¯ã¿ã¼ã¨ dataTransfer
ããããã£ä¸ã¤ãããããã㯠DataTransfer
ãªãã¸ã§ã¯ãã§ãã
DataTransfer
ãªãã¸ã§ã¯ãã¯ãã©ãã°ã¤ãã³ãã®ç¶æ
ãä¾ãã° (copy
ã move
ã®ãããª) ãã©ãã°ã®ç¨®é¡ãããã©ãã°ã®ãã¼ã¿ (1 ã¤ä»¥ä¸ã®é
ç®)ããåãã©ãã°é
ç®ã® MIME ã¿ã¤ãã®ãããªãã®ãå«ãã§ãã¾ããDataTransfer
ãªãã¸ã§ã¯ãã«ã¯ãã©ãã°ãã¼ã¿ã追å ã»åé¤ããã¡ã½ãããããã¾ãã
DragEvent
㨠DataTransfer
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ãã¢ããªã±ã¼ã·ã§ã³ã« HTML ãã©ãã° & ããããæ©è½ã追å ããããã«å¿
è¦ãªå¯ä¸ã®ãã®ã§ãã (Firefox ã§ã¯ Gecko ç¬èªæ¡å¼µã DataTransfer
ãªãã¸ã§ã¯ãã¸æ½ãã¦ãã¾ããããã®æ¡å¼µæ©è½ã¯ Firefox ã§ã®ã¿åä½ãã¾ãã)
ããããã® DataTransfer
ãªãã¸ã§ã¯ãã«ã¯ items
ããããã£ãããããã㯠DataTransferItem
ãªãã¸ã§ã¯ãã® list
ã§ãã DataTransferItem
ãªãã¸ã§ã¯ãã¯åä¸ã®ãã©ãã°é
ç®ã表ããããããã kind
ãããã㣠(string
ã file
ã®å¤ãåã) ã¨é
ç®ã® MIME ã¿ã¤ãã表ã type
ããããã£ãæã¡ã¾ããDataTransferItem
ãªãã¸ã§ã¯ãã«ã¯ãã©ãã°é
ç®ã®ãã¼ã¿ãåå¾ããã¡ã½ãããããã¾ãã
DataTransferItemList
ãªãã¸ã§ã¯ã㯠DataTransferItem
ãªãã¸ã§ã¯ãã®ãªã¹ãã§ãããã®ãªã¹ããªãã¸ã§ã¯ãã¯ãªã¹ãã«ãã©ãã°é
ç®ã追å ãããããªã¹ããããã©ãã°é
ç®ãåé¤ãããããã©ãã°é
ç®ã®ãªã¹ããã¯ãªã¢ããã¡ã½ãããæã¡ã¾ãã
DataTransfer
ã¨DataTransferItem
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ä¸»ãªéãã¯ãåè
ãåæã® getData()
ã¡ã½ããã使ã£ã¦ãã©ãã°é
ç®ã®ãã¼ã¿ã«ã¢ã¯ã»ã¹ããã®ã«å¯¾ããå¾è
ã¯ä»£ããã«éåæã®getAsString()
ã¡ã½ããã使ããã¨ã§ãã
ã¡ã¢: DragEvent
㨠DataTransfer
ã¯ãã¹ã¯ããããã©ã¦ã¶ã¼ã§ã¯åºã対å¿ãã¦ãã¾ããã DataTransferItem
㨠DataTransferItemList
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ãã©ã¦ã¶ã¼ã®å¯¾å¿ã¯éããã¦ãã¾ããç¸äºéç¨æ§ã«ã¤ãã¦ããã詳ããã¯ç¸äºéç¨æ§ãè¦ã¦ãã ããã
ãã®ç¯ã¯ãã¢ããªã«ãã©ãã° & ããããæ©è½ã追å ããåºæ¬æé ã®ã¾ã¨ãã§ãã
ãã©ãã°å¯è½ãªãã®ãç¹å®è¦ç´ ããã©ãã°å¯è½ã¨ããã«ã¯ã以ä¸ã®ã³ã¼ãã®ããã« draggable
屿§ã¨ ondragstart
ã®ã¤ãã³ããã³ãã©ã¼ã追å ãããã¨ãæ±ãããã¾ãã
<script>
function dragstart_handler(ev) {
// Add the target element's id to the data transfer object
ev.dataTransfer.setData("text/plain", ev.target.id);
}
window.addEventListener("DOMContentLoaded", () => {
// Get the element by id
const element = document.getElementById("p1");
// Add the ondragstart event listener
element.addEventListener("dragstart", dragstart_handler);
});
</script>
<p id="p1" draggable="true">ãã®è¦ç´ ã¯ãã©ãã°ã§ãã¾ãã</p>
詳ããã¯ã以ä¸ã®è¨äºãåç §ãã¦ãã ããã
ãã©ãã°ãããã¼ã¿ã®å®ç¾©ã¢ããªã±ã¼ã·ã§ã³ã¯ããã©ãã°æä½ã«ããã¤ã§ããã¼ã¿é
ç®ãå«ãããã¨ãèªç±ã«ã§ãã¾ããåãã¼ã¿é
ç®ã¯ç¹å®ã® type
ã®æååãããããã®ã¯ text/html
ã®ãã㪠MIME ã¿ã¤ãã§ãã
åãã©ãã°ã¤ãã³ã
ã¯ã¤ãã³ãã®ãã¼ã¿ãæ ¼ç´ããdataTransfer
ããããã£ãæã¡ã¾ãããã®ãããã㣠(ãã㯠DataTransfer
ãªãã¸ã§ã¯ãã§ã) ã«ã¯ãã©ãã°ãã¼ã¿ã管çããã¡ã½ãããããã¾ããsetData()
ã¡ã½ããã¯ãã©ãã°ãã¼ã¿ã«é
ç®ã追å ããã®ã«ä½¿ç¨ããããã®ä¾ã¯ä¸è¨ã®éãã§ãã
function dragstart_handler(ev) {
// ç°ãªã種é¡ã®ãã©ãã°ãã¼ã¿ã追å ãã
ev.dataTransfer.setData("text/plain", ev.target.innerText);
ev.dataTransfer.setData("text/html", ev.target.outerHTML);
ev.dataTransfer.setData(
"text/uri-list",
ev.target.ownerDocument.location.href,
);
}
æ¢å®ã§ã¯ããã©ã¦ã¶ã¼ã¯ãã©ãã°æä½ä¸ã«ãã¤ã³ã¿ã¼ã®æ¨ªã«ç¾ããç»åãæä¾ãã¾ããããã以ä¸ã®ä¾ã®ããã«ãã¢ããªã±ã¼ã·ã§ã³ã¯ setDragImage()
ã¡ã½ããã§ã«ã¹ã¿ã ç»åãå®ç¾©ã§ãã¾ãã
function dragstart_handler(ev) {
// ç»åã使ãããã©ãã°ç»åã¨ãã¦ä½¿ãã
// 注: "example.gif" ã¯å®éã®ç»åã® URL ã«å¤æ´ãã¦ãã ããã
// ã§ãªãã¨ãæ¢å®ã®ã®ãã©ãã°ç»åã使ç¨ããã¾ãã
let img = new Image();
img.src = "example.gif";
ev.dataTransfer.setDragImage(img, 10, 10);
}
ãã©ãã°ãã£ã¼ãããã¯ç»åã«ã¤ãã¦è©³ããã¯ãä¸è¨ãåç §ãã¦ãã ããã
ãã©ãã°å¹æã®å®ç¾©dropEffect
ããããã£ã¯ãã©ãã° & ããããæä½ä¸ã®ã¦ã¼ã¶ã¼ã¸ã®ãã£ã¼ãããã¯ã管çããã®ã«ä½¿ãã¾ããããããã®ã¯ãã©ãã°ä¸ã«ã©ã®ã«ã¼ã½ã«ããã©ã¦ã¶ã¼ã表示ãããã«å½±é¿ãã¾ããä¾ãã°ãã¦ã¼ã¶ã¼ãããããã¿ã¼ã²ããä¸ã«æã£ã¦ããã¨ãããã©ã¦ã¶ã¼ã®ã«ã¼ã½ã«ã¯èµ·ããåä½ã®ç¨®é¡ã示ããã¨ãããã¾ãã
3 éãã®å¹æãçºçããå¯è½æ§ãããã¾ãã
copy
ã¯ãã©ãã°ãããã¼ã¿ãç¾å¨ã®å ´æãããããããããå ´æã«ã³ãã¼ããããã¨ã示ãã¾ããmove
ã¯ãã©ãã°ãã¼ã¿ãç¾å¨ã®å ´æãããããããããå ´æã«ç§»åããããã¨ã示ãã¾ããlink
ã¯ãã©ãã°ãã¼ã¿ãå
ããããããå
ã«ãã種ã®é¢é£ãæ¥ç¶ã使ããããã¨ã示ãã¾ãããã©ãã°æä½ã®éããã广ã¯ããå ´æã«ã ã許å¯ããããã¨ã示ãããã«ããã©ãã°å¹æã¯å¤æ´ãããå ´åãããã¾ãã
ä¸è¨ã®ä¾ã¯ãã®ããããã£ã®ä½¿ãæ¹ã示ãã¾ãã
function dragstart_handler(ev) {
ev.dataTransfer.dropEffect = "copy";
}
詳ããã¯ä»¥ä¸ãåç §ãã¦ãã ããã
ããããã¾ã¼ã³ã®å®ç¾©æ¢å®ã§ã¯ããã©ã¦ã¶ã¼ã¯ã»ã¨ãã©ã® HTML è¦ç´ ã«ä½ãããããããããã¨ãããããããã¨ãçºçããã®ãé²ãã§ãã¾ãããã®åä½ã夿´ãã¦è¦ç´ ãããããã¾ã¼ã³ãããããå¯è½ã«ããã«ã¯ãè¦ç´ 㯠ondragover
㨠ondrop
ã¤ãã³ããã³ãã©ã¼å±æ§ãæããã°ãªãã¾ããã
以ä¸ã®ä¾ã¯ããã®å±æ§ã®ä½¿ãæ¹ã¨ãå屿§ã®åºæ¬çãªã¤ãã³ããã³ãã©ã¼ã示ãã¦ãã¾ãã
<script>
function dragover_handler(ev) {
ev.preventDefault();
ev.dataTransfer.dropEffect = "move";
}
function drop_handler(ev) {
ev.preventDefault();
// ç§»åãããè¦ç´ ã®idãåå¾ãã¦ããã®è¦ç´ ãtargetã®DOMã«è¿½å ãã
const data = ev.dataTransfer.getData("text/plain");
ev.target.appendChild(document.getElementById(data));
}
</script>
<p
id="target"
ondrop="drop_handler(event)"
ondragover="dragover_handler(event)">
Drop Zone
</p>
åãã³ãã©ã¼ã preventDefault()
ãå¼ãã§ããã®ã¤ãã³ãã (ã¿ããã¤ãã³ãããã¤ã³ã¿ã¼ã¤ãã³ããªã©ã«) 追å ã§å¦çããããã¨ãé²ãã§ããã®ã«æ³¨æãã¦ãã ãã
詳ããã¯ã以ä¸ãåç §ãã¦ãã ããã
ããããå¹æã®æ±ãdrop
ã¤ãã³ãã®ãã³ãã©ã¼ã§ã¯ãã¢ããªã±ã¼ã·ã§ã³åºæã®æ¹æ³ã§ãã©ãã°ãã¼ã¿ãèªç±ã«å¦çã§ãã¾ãã
ãµã¤ããã¢ããªã±ã¼ã·ã§ã³ã¯getData()
ã¡ã½ããã§ãã©ãã°é
ç®ãåå¾ãã¦ããã®ãããå¦çãã¾ããå ãã¦ãã¢ããªã±ã¼ã·ã§ã³ã®ã»ãã³ãã£ã¯ã¹ã¯ dropEffect
ã®å¤ã修飾ãã¼ã®ç¶æ
ã«ããç°ãªãã¾ãã
ä¸è¨ã®ä¾ã§ã¯ããã©ãã°ãã¼ã¿ããã½ã¼ã¹è¦ç´ ã® id
ãåå¾ãã id
ã使ã£ã¦ã½ã¼ã¹è¦ç´ ãããããè¦ç´ ã«ç§»åãããããããã³ãã©ã¼ã示ãã¦ãã¾ãã
<script>
function dragstart_handler(ev) {
// 対象ã¨ãªãè¦ç´ ã® id ã DataTransfer ãªãã¸ã§ã¯ãã«è¿½å ãã
ev.dataTransfer.setData("application/my-app", ev.target.id);
ev.dataTransfer.effectAllowed = "move";
}
function dragover_handler(ev) {
ev.preventDefault();
ev.dataTransfer.dropEffect = "move";
}
function drop_handler(ev) {
ev.preventDefault();
// ç§»åãããè¦ç´ ã® id ãåå¾ãã¦ããã®è¦ç´ ã target ã® DOM ã«è¿½å ãã
const data = ev.dataTransfer.getData("application/my-app");
ev.target.appendChild(document.getElementById(data));
}
</script>
<p id="p1" draggable="true" ondragstart="dragstart_handler(event)">
This element is draggable.
</p>
<div
id="target"
ondrop="drop_handler(event)"
ondragover="dragover_handler(event)">
Drop Zone
</div>
詳ããã¯ã以ä¸ãåç §ãã¦ãã ããã
ãã©ãã°ã®çµäºãã©ãã°æä½ã®çµããã«ã dragend
ã¤ãã³ãããã©ãã°å
ã®è¦ç´ ã§çºçãã¾ãã â ãã©ãã°ãéå§ããã対象ã®è¦ç´ ã§ãã
ãã®ã¤ãã³ãã¯ãã©ãã°ã®å®äºã¨ãã£ã³ã»ã«ã®ã©ã¡ãã§ãçºçãã¾ãã dragend
ã¤ãã³ããã³ãã©ã¼ã¯ dropEffect
ããããã£ã®å¤ããã§ãã¯ãã¦ãã©ãã°æä½ãæåãããå¦ããæ±ºå®ã§ãã¾ãã
ãã©ãã°æä½ã®çµäºãæ±ããã¨ã®è©³ç´°ã¯ã以ä¸ãåç §ãã¦ãã ããã
ç¸äºéç¨æ§DataTransferItem ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ãã©ã¦ã¶ã¼äºææ§ãã¼ãã«ã«è¦ãããããã«ããã©ãã° & ããããã®ç¸äºæ¥ç¶æ§ã¯ãã¹ã¯ããããã©ã¦ã¶ã¼ã§ã¯ç¸å¯¾çã«åºãã§ãï¼å¯¾å¿ã®å°ãªã DataTransferItem
㨠DataTransferItemList
ã¤ã³ã¿ã¼ãã§ã¤ã¹ãé¤ãã¦ï¼ããã®ãã¼ã¿ã¯ã¢ãã¤ã«ãã©ã¦ã¶ã¼ã§ã®ãã©ãã° & ããããã®å¯¾å¿ã¯ã¨ã¦ãä½ããã¨ã示ãã¦ãã¾ãã
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4