Invalid slug for templ/sidebar: HTML ëëê·¸ ì¤ ëë¡ API
HTML ëëê·¸ ì¤ ëë¡ ì¸í°íì´ì¤ë Firefoxì ë¤ë¥¸ ë¸ë¼ì°ì ìì ì´í리ì¼ì´ì ì´ ëëê·¸ ì¤ ëë¡ ê¸°ë¥ì ì¬ì©íê² í´ì¤ëë¤. ì´ ê¸°ë¥ì ì´ì©í´ ì¬ì©ìë draggable ìì를 ë§ì°ì¤ë¡ ì íí´ droppable ììë¡ ëëê·¸íê³ , ë§ì°ì¤ ë²í¼ìì ìì ëì¼ë¡ì¨ ìì를 ëë¡í ì ììµëë¤. ëëê·¸íë ëì draggable ììë ë°í¬ëª í ì±ë¡ ë§ì°ì¤ í¬ì¸í°ë¥¼ ë°ë¼ë¤ëëë¤.
ì¹ ì¬ì´í¸ë íì¥ ê¸°ë¥, XUL ì´í리ì¼ì´ì ì ìí´, ë¤ìí ìì를 draggable ììë¡ ë§ë¤ ì ìê³ , ì´ë²¤í¸ì ëí draggable ììì ë°ìë¤ì ë§ë¤ì´ë´ê±°ë droppable ìì를 ìì ìì¬ë¡ ë§ë¤ ì ììµëë¤.
ì´ ë¬¸ìë HTML ëëê·¸ ì¤ ëë¡ì ëí ì ë°ì ì¸ ê°ìì ëë¤. ì¸í°íì´ì¤ì ëí ì¤ëª ê³¼ ëëê·¸ ì¤ ëë¡ ê¸°ë¥ì ì´í리ì¼ì´ì ìì ì¬ì©í기 ìí 기본ì ì¸ ì ì°¨, ì¸í°íì´ì¤ì ìí¸ ì´ì©ì±ì ëí ìì½ ë±ì´ ì´ ë¬¸ìì ë´ê²¨ììµëë¤.
ëëê·¸ ì´ë²¤í¸HTML ëëê·¸ ì¤ ëë¡ì DOM event model
ê³¼ drag events
를 mouse events
ë¡ë¶í° ììë°ìµëë¤. ë³´íµ ëëê·¸ë ì¬ì©ìê° draggable ìì를 ë§ì°ì¤ë¡ ì ííê³ , ë§ì°ì¤ í¬ì¸í°ë¥¼ droppable ììë¡ ê°ì ¸ê° ë§ì°ì¤ ë²í¼ì ëë ê²ì¼ë¡ ì´ë£¨ì´ì§ëë¤. ëëê·¸íë ëì¤ì ë§ì ì´ë²¤í¸ê° ë°ìíê³ , ëªëª ì´ë²¤í¸ë ì¬ë¬ë² ë°ìí기ë í©ëë¤. ( drag
ì dragover
).
모ë ëëê·¸ ì´ë²¤í¸ë ê¸ë¡ë² ì´ë²¤í¸ í¸ë¤ë¬ì ì°ê²°ëì´ ììµëë¤. ê° ëëê·¸ ì´ë²¤í¸ì ëëê·¸ ì ì ìì±ì 참조 문ì를 ê°ì§ê³ ììµëë¤. ìë íë ê° ì´ë²¤í¸ì ëí ê°ëµí ì¤ëª ê³¼ 참조 문ìë¡ì ë§í¬ë¥¼ ë´ê³ ììµëë¤.
ì´ë²¤í¸ ì´ë²¤í¸ í¸ë¤ë¬ ì¤ëªdrag
ondrag
ììë í
ì¤í¸ ë¸ë¡ì ëëê·¸ í ë ë°ìíë¤. dragend
ondragend
ëë그를 ëëì ë ë°ìíë¤. (ë§ì°ì¤ ë²í¼ì ë¼ê±°ë ESC í¤ë¥¼ ë를 ë) (ëëê·¸ ëë´ê¸°ë¥¼ ë³´ìì¤) dragenter
ondragenter
ëëê·¸í ììë í
ì¤í¸ ë¸ë¡ì ì í©í ëë¡ ëììì ì¬ë¼ê°ì ë ë°ìíë¤. (ëë¡ ëì ì§ì í기를 ë³´ìì¤.) dragleave
ondragleave
ëëê·¸íë ììë í
ì¤í¸ ë¸ë¡ì´ ì í©í ëë¡ ëììì ë²ì´ë¬ì ë ë°ìíë¤. dragover
ondragover
ììë í
ì¤í¸ ë¸ë¡ì ì í©í ëë¡ ëì ìë¡ ì§ëê° ë ë°ìíë¤. (매 ìë°± ë°ë¦¬ì´ë§ë¤ ë°ìíë¤.) dragstart
ondragstart
ì¬ì©ìê° ììë í
ì¤í¸ ë¸ë¡ì ëëê·¸í기 ììíì ë ë°ìíë¤. (ëëê·¸ ììí기를 ë³´ìì¤.) drop
ondrop
ììë í
ì¤í¸ ë¸ë¡ì ì í©í ëë¡ ëìì ëë¡íì ë ë°ìíë¤. (ëë¡í기를 ë³´ìì¤.)
ì¸í°íì´ì¤ì°¸ê³ :
ì°¸ê³ : dragstart
ìdragend
ì´ë²¤í¸ë íì¼ì ë¸ë¼ì°ì ë¡ ëëê·¸í ëë ë°ìíì§ ììµëë¤.
HTML ëëê·¸ì ëë¡ ì¸í°íì´ì¤ë DragEvent
, DataTransfer
, DataTransferItem
, DataTransferItemList
ì
ëë¤.
DataTransfer
ê°ì²´ë ëëê·¸ ííë ëëê·¸ ë°ì´í° (íë ì´ìì ìì´í
), ê° ëëê·¸ ìì´í
ì ì¢
ë¥ (MIME ì¢
ë¥) ì ê°ì ëëê·¸ ì´ë²¤í¸ì ìí를 ë´ê³ ììµëë¤. DataTransfer
ë ëí ëëê·¸ ë°ì´í°ì ìì´í
ì ì¶ê°íê±°ë ì ê±°íë ë©ìë를 ê°ì§ê³ ììµëë¤. The DragEvent
ì DataTransfer
ì¸í°íì´ì¤ë§ ìì¼ë©´ ì´í리ì¼ì´ì
ì HTML ëëê·¸ ì¤ ëë¡ ê¸°ë¥ì ì¶ê°í ì ììµëë¤. ì°¸ê³ ë¡ Firefoxë DataTransfer
ì Gecko-specific extensions ì ê°ì Firefoxììë§ ëìíë ì¶ê°ì ì¸ íì¥ì ì ê³µí©ëë¤.
DataTransfer
ë DataTransferItem
ì 목ë¡
ì¸ items
íë¡í¼í°ë¥¼ ê°ì§ê³ ììµëë¤. ê° DataTransferItem
ë íëì ëëê·¸ ìì´í
ì ëíë´ê³ ê° ìì´í
ì ë°ì´í°ì ì¢
ë¥ (string
í¹ì file
) 를 ëíë´ë kind
íë¡í¼í°ì ë°ì´í° ìì´í
ì ì¢
ë¥ (MIME ì¢
ë¥) 를 ëíë´ë type
íë¡í¼í°ë¥¼ ê°ì§ëë¤. DataTransferItem
ì ëëê·¸ ìì´í
ì ë°ì´í°ë¥¼ ê°ì ¸ì¤ë ë©ìë를 ì ê³µí©ëë¤.
DataTransferItemList
ê°ì²´ë DataTransferItem
ì 리ì¤í¸ì
ëë¤. ì´ ë¦¬ì¤í¸ ê°ì²´ë ì¸ ê°ì ë©ìë - ëëê·¸ ìì´í
ì 리ì¤í¸ì ì¶ê°íê±°ë, 리ì¤í¸ìì ìì´í
ì ìì íê±°ë, 모ë ëëê·¸ ìì´í
ì 리ì¤í¸ìì ìì íë ë©ìë - 를 ê°ì§ëë¤.
A key difference between the DataTransfer
and DataTransferItem
interfaces is that the former uses the synchronous getData()
method to access a drag item's data, whereas the later uses the asynchronous getAsString()
method to access a drag item's data.
DataTransfer
ì DataTransferItem
ì ê°ì¥ ì¤ìí ì°¨ì´ì ì ì ìë ëëê·¸ ìì´í
ì ë°ì´í°ì ì ê·¼í기 ìí´ ë기 ë©ìëì¸ getData()
를 ì¬ì©íëë° ë°í´, íìë ë¹ë기 ë©ìëì¸ getAsString()
를 ì¬ì©íë¤ë ì ì
ëë¤.
ì°¸ê³ : ì°¸ê³ : DragEvent
and DataTransfer
ë ì¬ë¬ ë°ì¤í¬í ë¸ë¼ì°ì ìì íëê² ì§ìíê³ ììµëë¤. íì§ë§ DataTransferItem
ì DataTransferItemList
ë ì íì ì¼ë¡ ì¬ì© ê°ë¥í©ëë¤. ëëê·¸ ì¤ ëë¡ì ìí¸ ì´ì©ì±ì ëí ë ë§ì ì 보를 ì°¾ì보기 ìí´ Interoperability를 ë³´ììì¤.
Mozillaì Firefoxë íì¤ ëëê·¸ ì¤ ëë¡ ëª¨ë¸ìì ì ê³µíì§ ìë ëªê°ì§ 기ë¥ë¤ì ì¶ê°ë¡ ì ê³µí©ëë¤. ì¬ë¬ ê°ì ìì´í
ì ëìì ëëê·¸íê±°ë íì¼ê³¼ ê°ì´ 문ìì´ì´ ìë ë°ì´í°ë¥¼ ëëê·¸ í기 ìí ì¬ë¬ í¸ë¦¬í 기ë¥ì ì ê³µí©ëë¤. ë ë§ì ì 보를 ì°¾ì보기 ìí´, Dragging and Dropping Multiple Itemsì ë³´ììì¤. ë§ë¶ì¬, 모ë Gecko íì íë¡í¼í°ë Gecko íì ë©ìë를 ì°¾ì보기 ìí´ DataTransfer
참조 íì´ì§ë ë³´ì기 ë°ëëë¤.
ì´ë² ì ì ëëê·¸ ì¤ ëë¡ ê¸°ë¥ì ì¶ê°í기 ìí 기본ì ì¸ ë°©ë²ì ìì½íê³ ììµëë¤. ê° ì ì ë¨ê³ë¥¼ ì¤ëª íê³ , ì§§ì ì½ë ìì ì ì¶ê°ì ì¸ ì 보를 ìí ë§í¬ë¥¼ í¬í¨í©ëë¤.
ì´ë¤ ê²ì´ draggableì¸ì§ íì¸í기íëì ìì를 draggableë¡ ë§ë¤ê¸° ìí´ìë draggable
ì ondragstart
ì ì ì´ë²¤í¸ í¸ë¤ë¬ë¥¼ ìë ìì ì½ëì ê°ì´ ì¶ê°í´ì¼í©ëë¤.
function dragstart_handler(ev) {
console.log("dragStart");
// ë°ì´í° ì ë¬ ê°ì²´ì ëì ììì id를 ì¶ê°í©ëë¤.
ev.dataTransfer.setData("text/plain", ev.target.id);
}
<script>
function dragstart_handler(ev) {
// ë°ì´í° ì ë¬ ê°ì²´ì ëì ììì id를 ì¶ê°í©ëë¤.
ev.dataTransfer.setData("text/plain", ev.target.id);
}
window.addEventListener("DOMContentLoaded", () => {
// id를 íµí´ element를 ê°ì ¸ìµëë¤.
const element = document.getElementById("p1");
// 'dragstart' ì´ë²¤í¸ 리ì¤í°ë¥¼ ì¶ê°í©ëë¤.
element.addEventListener("dragstart", dragstart_handler);
});
</script>
<p id="p1" draggable="true">This element is draggable.</p>
ì¶ê° ì 보를 ìí´ draggable attribute referenceì Drag operations guide를 ì°¸ê³ íì¸ì.
ëëê·¸ ë°ì´í° ì ìí기ëëê·¸í ë ìì ë¡ê² ë°ì´í° ìì´í
ì í¬í¨í ì ììµëë¤. ê° ë°ì´í° ìì´í
ì í¹ì type
ì 문ìì´
ì´ë©°, ë³´íµ text/html
ì ê°ì MIME typeì
ëë¤.
ê° drag event
ì ì´ë²¤í¸ ë°ì´í°ë¥¼ ê°ì§ê³ ìë dataTransfer
를 ê°ì§ëë¤. ì´ íë¡í¼í°ë (DataTransfer
ê°ì²´) ëëê·¸ ë°ì´í°ë¥¼ ê´ë¦¬íë ë©ìë를 ê°ì§ëë¤. setData()
ë ìë ì½ë ìì ì ê°ì´ ìì´í
ì ëëê·¸ ë°ì´í°ì ì¶ê°í ë ì¬ì©í©ëë¤.
function dragstart_handler(ev) {
// ëëê·¸ ë°ì´í°ë¥¼ ì¶ê°í©ëë¤.
ev.dataTransfer.setData("text/plain", ev.target.id);
ev.dataTransfer.setData("text/html", "<p>Example paragraph</p>");
ev.dataTransfer.setData("text/uri-list", "http://developer.mozilla.org");
}
ëëê·¸ ì¤ ëë¡ì ì¬ì©í ì ìë ê³µíµ ë°ì´í° íì (í ì¤í¸, HTML, ë§í¬, íì¼ ë±) ì 목ë¡ì ë³´ë ¤ë©´, Recommended Drag Types를 ì°¸ê³ íììì¤. ëëê·¸ ë°ì´í°ì ëí ì¶ê°ì ì¸ ì 보를 ìí´ìë Drag Data를 ì°¸ê³ íììì¤.
ëëê·¸ ì´ë¯¸ì§ ì ìí기ë¸ë¼ì°ì ë ëëê·¸ íë ëì ë§ì°ì¤ í¬ì¸í° ìì ëíëë ì´ë¯¸ì§ë¥¼ 기본ì ì¼ë¡ ì ê³µí©ëë¤. ì´í리ì¼ì´ì
ìì ë¤ë¥¸ ì´ë¯¸ì§ë¥¼ ì¬ì©í기 ìíë¤ë©´ ìë ìì ì ê°ì´ setDragImage()
를 ì¬ì©í ì ììµëë¤.
function dragstart_handler(ev) {
// ëëê·¸ ì´ë¯¸ì§ë¡ ì¬ì©í ì´ë¯¸ì§ë¥¼ ë§ëëë¤.
// ì°¸ê³ : "example.gif"를 ì¡´ì¬íë ì´ë¯¸ì§ë¡ ë°ê¾¸ì§ ìì¼ë©´ 기본 ëëê·¸ ì´ë¯¸ì§ë¥¼ ì¬ì©í©ëë¤.
var img = new Image();
img.src = "example.gif";
ev.dataTransfer.setDragImage(img, 10, 10);
}
ëëê·¸ ì´ë¯¸ì§ì ëí´ ë ììë³´ë ¤ë©´, Setting the Drag Feedback Image를 ì°¸ê³ íì¸ì.
ëëê·¸ í¨ê³¼ ì ìí기dropEffect
íë¡í¼í°ë ëëê·¸ ì¤ ëë¡ ëì¤ì ì¬ì©ììê² í¼ëë°± (ë³´íµ ìê°ì ì¸) ì ì ê³µí기 ìí´ ì¬ì©í©ëë¤. ë¸ë¼ì°ì ê° ëëê·¸ íë ëì ì´ë¤ ë§ì°ì¤ í¬ì¸í°ë¥¼ ë³´ì¬ì¤ ì§ ê²°ì í©ëë¤. ì¬ì©ìê° ë§ì°ì¤ í¬ì¸í°ë¥¼ ëì ëë¡ ììì ì¬ë ¤ëì¼ë©´, ë¸ë¼ì°ì ë ëëê·¸ í¨ê³¼ì ì í©í ë§ì°ì¤ í¬ì¸í°ë¥¼ ë³´ì¬ì¤ ê²ì
ëë¤.
ì¸ ê°ì í¨ê³¼ê° ì ìëì´ ììµëë¤:
copy
ë íì¬ ìì¹ìì ëë¡íë ìì¹ë¡ ë°ì´í°ê° ë³µì¬ë ê²ì ììí©ëë¤.
move
ë íì¬ ìì¹ìì ëë¡íë ìì¹ë¡ ë°ì´í°ê° ì´ëí ê²ì ììí©ëë¤.
link
ë ëëê·¸íë ìì¹ì ëë¡íë ìì¹ ê°ì ì¼ì¢
ì ê´ê³ë ì°ê²°ì´ 맺ì´ì§ ë¤ë ê²ì ììí©ëë¤.
í¹ì ìì¹ììë í¹ì í¨ê³¼ê° íì©ëë¤ë ê²ì ìë ¤ì£¼ê¸° ìí´ ëëê·¸ íë ëì¤ì í¨ê³¼ê° ë³í ì ììµëë¤. íì©ëë ê²½ì°ìë§ í´ë¹ ìì¹ì ëë¡í ì ììµëë¤.
ë¤ì ìì ë ì´ë»ê² ì´ íë¡í¼í°ë¥¼ ì¬ì©íëì§ ë³´ì¬ì¤ëë¤.
function dragstart_handler(ev) {
// ëëê·¸ í¨ê³¼ë¥¼ copyë¡ ì§ì í©ëë¤.
ev.dataTransfer.dropEffect = "copy";
}
ë ìì¸í ì¤ëª ì Drag Effects를 ì°¸ê³ íì¸ì.
ëë¡ ì§ì ì ìí기기본ì ì¼ë¡ë ë¸ë¼ì°ì ë HTML ììì ëê°ë¥¼ ëë¡íì ë ì무 ì¼ë ì¼ì´ëì§ ìëë¡ í©ëë¤. í¹ì ììê° ëë¡ ì§ì í¹ì droppableë¡ ë§ë¤ê¸° ìí´ìë í´ë¹ ììê° ondragover
ì ondrop
ì´ë²¤í¸ í¸ë¤ë¬ ìì±ì ê°ì ¸ì¼í©ëë¤. ìë ìì ë ë ìì를 ì´ë»ê² ì¬ì©íê³ , ê° ììì í¬í¨ë 기본ì ì¸ ì´ë²¤í¸ í¸ë¤ë¬ë¥¼ ë³´ì¬ì¤ëë¤.
<script>
function dragover_handler(ev) {
ev.preventDefault();
// dropEffect를 moveë¡ ì¤ì .
ev.dataTransfer.dropEffect = "move";
}
function drop_handler(ev) {
ev.preventDefault();
// ëìì id를 ê°ì ¸ì ëì 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()
를 í¸ì¶í´ ì¶ê°ì ì¸ ì´ë²¤í¸ (í°ì¹ ì´ë²¤í¸ë í¬ì¸í° ì´ë²¤í¸) ê° ì¼ì´ëì§ ìëë¡ í©ëë¤.
ì¶ê°ì ì¸ ì ë³´ë, Specifying Drop Targets를 ì°¸ê³ íì¸ì.
ëë¡ í¨ê³¼ ë¤ë£¨ê¸°drop
ì´ë²¤í¸ í¸ë¤ë¬ë ìì ë¡ê² ëëê·¸ ë°ì´í°ë¥¼ ê°ê³µí ì ììµëë¤. ë³´íµ, ëëê·¸ ìì´í
ê³¼ ê° ìì´í
ì ê°ê³µí기 ìí´ getData()
를 ì¬ì©í©ëë¤. ì¶ê°ë¡, dropEffect
ê°ì´ë ë³´ì¡°í¤ ìíì ë°ë¼ ì´í리ì¼ì´ì
ì´ ì´ë»ê² ëìí ì§ë¥¼ ê²°ì í ì ììµëë¤.
ìë ìì ë ëë¡ í¸ë¤ë¬ê° ëëê·¸ ë°ì´í°ë¡ë¶í° ëëê·¸íë ììì id를 ê°ì ¸ì ëëê·¸íë ìì를 ëë¡íë ììë¡ ì®ê¸°ê¸°ìí´ ì¬ì©í©ëë¤.
<script>
function dragstart_handler(ev) {
// ë°ì´í° ì ë¬ ê°ì²´ì ëì ììì id를 ì¶ê°í©ëë¤.
ev.dataTransfer.setData("application/my-app", ev.target.id);
ev.dataTransfer.dropEffect = "move";
}
function dragover_handler(ev) {
ev.preventDefault();
ev.dataTransfer.dropEffect = "move";
}
function drop_handler(ev) {
ev.preventDefault();
// ëìì id를 ê°ì ¸ì ì´ëí ëì DOM ìì를 ì¶ê°í©ëë¤.
// Get the id of the target and add the moved element to the target's 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>
ë ë§ì ì 보를 ìí´ Performing a Dropì ë³´ììì¤.
ëëê·¸ê° ëëë©´ëëê·¸ê° ëëë©´ ëëê·¸í ììì dragend
ì´ë²¤í¸ê° ë°ìí©ëë¤. ì´ ì´ë²¤í¸ë ëëê·¸ê° ìë£ëê±°ë ì¤ê°ì ì·¨ìëì´ë ë°ìí©ëë¤. dragend
ì´ë²¤í¸ í¸ë¤ë¬ë dropEffect
íë¡í¼í°ë¥¼ íì¸í´ ëëê·¸ê° ì±ê³µíëì§ë¥¼ íì¸í ì ììµëë¤.
ëëê·¸ ëì ë¤ë£¨ê¸° ìí ë ë§ì ì ë³´ë Finishing a Drag를 ì°¸ê³ íì¸ì.
ìí¸ ì´ì©ì±DataTransferItem interface's Browser Compatibility tableì ëì¨ ëë¡, ëëê·¸ ì¤ ëë¡ì ìëì ì¼ë¡ ì¬ë¬ ë°ì¤í¬í± ë¸ë¼ì°ì ìì íëê² ì¬ì©í ì ììµëë¤ (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