123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465 |
- {
- "title":"Drag and Drop",
- "description":"Method of easily dragging and dropping elements on a page, requiring minimal JavaScript.",
- "spec":"https://html.spec.whatwg.org/multipage/interaction.html#dnd",
- "status":"ls",
- "links":[
- {
- "url":"http://html5doctor.com/native-drag-and-drop/",
- "title":"HTML5 Doctor article"
- },
- {
- "url":"http://nettutsplus.s3.amazonaws.com/64_html5dragdrop/demo/index.html",
- "title":"Shopping cart demo"
- },
- {
- "url":"http://html5demos.com/drag",
- "title":"Demo with link blocks"
- },
- {
- "url":"https://www.webplatform.org/docs/dom/DragEvent",
- "title":"WebPlatform Docs"
- },
- {
- "url":"https://github.com/MihaiValentin/setDragImage-IE",
- "title":"Polyfill for setDragImage in IE"
- },
- {
- "url":"http://blog.teamtreehouse.com/implementing-native-drag-and-drop",
- "title":"Implementing Native Drag and Drop"
- },
- {
- "url":"https://github.com/timruffles/ios-html5-drag-drop-shim",
- "title":"iOS/Android shim for HTML 5 drag'n'drop"
- },
- {
- "url":"https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/6542268-setdragimage-on-datatransfer-of-dragevent",
- "title":"Microsoft Edge setDragImage feature request on UserVoice"
- }
- ],
- "bugs":[
- {
- "description":"Chrome strips out newlines from `text/uri-list` [see bug](https://code.google.com/p/chromium/issues/detail?id=239745)"
- },
- {
- "description":"In Chrome, `DataTransfer.addElement` is not implemented. There is no other way to implement a draggable object which updates during the drag due to some other circumstances (e.g. changes color on a valid drop spot), as it is just a static image if `addElement` is not supported."
- },
- {
- "description":"In Firefox, an element won't drag unless the `dragstart` handler sets `dataTransfer` data (even if it doesn't get retrieved). [Test case](https://codepen.io/michai/pen/NwORqO)"
- },
- {
- "description":"In Firefox, drag and drop does not work when the page is served as `application/xhtml+xml` [Mozilla Bug #751778](https://bugzilla.mozilla.org/show_bug.cgi?id=751778), [Mozilla Bug #1106160](https://bugzilla.mozilla.org/show_bug.cgi?id=1106160)"
- },
- {
- "description":"In Firefox, the `dragstart` event does not fire on `button` elements. This effectively disables drag and drop for `button` elements."
- },
- {
- "description":"Safari doesn't implement the `DragEvent` interface. It adds a `dataTransfer` property to `MouseEvent` instead. See [WebKit bug #103423](https://bugs.webkit.org/show_bug.cgi?id=103423)."
- },
- {
- "description":"In Safari 8, after setting `event.dataTransfer.dropEffect`, the value in the `drop` event is always `'none'`"
- },
- {
- "description":"In IE9-10, the `draggable` attribute could be effectively applied for `a` and `img` elements. For `div` and `span` elements you should call `element.dragDrop()` to start drag event."
- },
- {
- "description":"In IE9-11, using `\"text/plain\"` as the format for `event.dataTransfer.setData` and `event.dataTransfer.getData` reportedly does not work and causes a JS error. The format needs to be `\"text\"`, which seems to work in all the mainstream browsers (Chrome, Safari, Firefox, IE9-11, Edge)."
- }
- ],
- "categories":[
- "HTML5"
- ],
- "stats":{
- "ie":{
- "5.5":"a #1 #3",
- "6":"a #1 #3",
- "7":"a #1 #3",
- "8":"a #1 #3",
- "9":"a #1 #3",
- "10":"a #2 #3",
- "11":"a #2 #3"
- },
- "edge":{
- "12":"a #2",
- "13":"a #2",
- "14":"a #2",
- "15":"a #2",
- "16":"a #2",
- "17":"a #2",
- "18":"y",
- "79":"y",
- "80":"y",
- "81":"y",
- "83":"y",
- "84":"y",
- "85":"y",
- "86":"y"
- },
- "firefox":{
- "2":"p",
- "3":"p",
- "3.5":"y",
- "3.6":"y",
- "4":"y",
- "5":"y",
- "6":"y",
- "7":"y",
- "8":"y",
- "9":"y",
- "10":"y",
- "11":"y",
- "12":"y",
- "13":"y",
- "14":"y",
- "15":"y",
- "16":"y",
- "17":"y",
- "18":"y",
- "19":"y",
- "20":"y",
- "21":"y",
- "22":"y",
- "23":"y",
- "24":"y",
- "25":"y",
- "26":"y",
- "27":"y",
- "28":"y",
- "29":"y",
- "30":"y",
- "31":"y",
- "32":"y",
- "33":"y",
- "34":"y",
- "35":"y",
- "36":"y",
- "37":"y",
- "38":"y",
- "39":"y",
- "40":"y",
- "41":"y",
- "42":"y",
- "43":"y",
- "44":"y",
- "45":"y",
- "46":"y",
- "47":"y",
- "48":"y",
- "49":"y",
- "50":"y",
- "51":"y",
- "52":"y",
- "53":"y",
- "54":"y",
- "55":"y",
- "56":"y",
- "57":"y",
- "58":"y",
- "59":"y",
- "60":"y",
- "61":"y",
- "62":"y",
- "63":"y",
- "64":"y",
- "65":"y",
- "66":"y",
- "67":"y",
- "68":"y",
- "69":"y",
- "70":"y",
- "71":"y",
- "72":"y",
- "73":"y",
- "74":"y",
- "75":"y",
- "76":"y",
- "77":"y",
- "78":"y",
- "79":"y",
- "80":"y",
- "81":"y",
- "82":"y",
- "83":"y"
- },
- "chrome":{
- "4":"y",
- "5":"y",
- "6":"y",
- "7":"y",
- "8":"y",
- "9":"y",
- "10":"y",
- "11":"y",
- "12":"y",
- "13":"y",
- "14":"y",
- "15":"y",
- "16":"y",
- "17":"y",
- "18":"y",
- "19":"y",
- "20":"y",
- "21":"y",
- "22":"y",
- "23":"y",
- "24":"y",
- "25":"y",
- "26":"y",
- "27":"y",
- "28":"y",
- "29":"y",
- "30":"y",
- "31":"y",
- "32":"y",
- "33":"y",
- "34":"y",
- "35":"y",
- "36":"y",
- "37":"y",
- "38":"y",
- "39":"y",
- "40":"y",
- "41":"y",
- "42":"y",
- "43":"y",
- "44":"y",
- "45":"y",
- "46":"y",
- "47":"y",
- "48":"y",
- "49":"y",
- "50":"y",
- "51":"y",
- "52":"y",
- "53":"y",
- "54":"y",
- "55":"y",
- "56":"y",
- "57":"y",
- "58":"y",
- "59":"y",
- "60":"y",
- "61":"y",
- "62":"y",
- "63":"y",
- "64":"y",
- "65":"y",
- "66":"y",
- "67":"y",
- "68":"y",
- "69":"y",
- "70":"y",
- "71":"y",
- "72":"y",
- "73":"y",
- "74":"y",
- "75":"y",
- "76":"y",
- "77":"y",
- "78":"y",
- "79":"y",
- "80":"y",
- "81":"y",
- "83":"y",
- "84":"y",
- "85":"y",
- "86":"y",
- "87":"y",
- "88":"y",
- "89":"y"
- },
- "safari":{
- "3.1":"y",
- "3.2":"y",
- "4":"y",
- "5":"y",
- "5.1":"y",
- "6":"y",
- "6.1":"y",
- "7":"y",
- "7.1":"y",
- "8":"y",
- "9":"y",
- "9.1":"y",
- "10":"y",
- "10.1":"y",
- "11":"y",
- "11.1":"y",
- "12":"y",
- "12.1":"y",
- "13":"y",
- "13.1":"y",
- "14":"y",
- "TP":"y"
- },
- "opera":{
- "9":"p",
- "9.5-9.6":"p",
- "10.0-10.1":"p",
- "10.5":"p",
- "10.6":"p",
- "11":"p",
- "11.1":"p",
- "11.5":"p",
- "11.6":"p",
- "12":"y",
- "12.1":"y",
- "15":"y",
- "16":"y",
- "17":"y",
- "18":"y",
- "19":"y",
- "20":"y",
- "21":"y",
- "22":"y",
- "23":"y",
- "24":"y",
- "25":"y",
- "26":"y",
- "27":"y",
- "28":"y",
- "29":"y",
- "30":"y",
- "31":"y",
- "32":"y",
- "33":"y",
- "34":"y",
- "35":"y",
- "36":"y",
- "37":"y",
- "38":"y",
- "39":"y",
- "40":"y",
- "41":"y",
- "42":"y",
- "43":"y",
- "44":"y",
- "45":"y",
- "46":"y",
- "47":"y",
- "48":"y",
- "49":"y",
- "50":"y",
- "51":"y",
- "52":"y",
- "53":"y",
- "54":"y",
- "55":"y",
- "56":"y",
- "57":"y",
- "58":"y",
- "60":"y",
- "62":"y",
- "63":"y",
- "64":"y",
- "65":"y",
- "66":"y",
- "67":"y",
- "68":"y",
- "69":"y",
- "70":"y",
- "71":"y"
- },
- "ios_saf":{
- "3.2":"n",
- "4.0-4.1":"n",
- "4.2-4.3":"n",
- "5.0-5.1":"n",
- "6.0-6.1":"n",
- "7.0-7.1":"n",
- "8":"n",
- "8.1-8.4":"n",
- "9.0-9.2":"n",
- "9.3":"n",
- "10.0-10.2":"n",
- "10.3":"n",
- "11.0-11.2":"n",
- "11.3-11.4":"n",
- "12.0-12.1":"n",
- "12.2-12.4":"n",
- "13.0-13.1":"n",
- "13.2":"n",
- "13.3":"n",
- "13.4-13.7":"n",
- "14":"n"
- },
- "op_mini":{
- "all":"n"
- },
- "android":{
- "2.1":"n",
- "2.2":"n",
- "2.3":"n",
- "3":"n",
- "4":"n",
- "4.1":"n",
- "4.2-4.3":"n",
- "4.4":"n",
- "4.4.3-4.4.4":"n",
- "81":"y #4"
- },
- "bb":{
- "7":"n",
- "10":"n"
- },
- "op_mob":{
- "10":"p",
- "11":"p",
- "11.1":"p",
- "11.5":"p",
- "12":"p",
- "12.1":"y",
- "59":"y #4"
- },
- "and_chr":{
- "85":"y #4"
- },
- "and_ff":{
- "79":"n"
- },
- "ie_mob":{
- "10":"y",
- "11":"y"
- },
- "and_uc":{
- "12.12":"n"
- },
- "samsung":{
- "4":"n",
- "5.0-5.4":"n",
- "6.2-6.4":"n",
- "7.2-7.4":"n",
- "8.2":"n",
- "9.2":"n",
- "10.1":"n",
- "11.1-11.2":"n",
- "12.0":"n"
- },
- "and_qq":{
- "10.4":"y"
- },
- "baidu":{
- "7.12":"n"
- },
- "kaios":{
- "2.5":"n"
- }
- },
- "notes":"`dataTransfer.items` only supported by Chrome.\r\n\r\nCurrently no browser supports the `dropzone` attribute.\r\n\r\nFirefox supports any kind of DOM elements for `.setDragImage`. Chrome must have either an `HTMLImageElement` or any kind of DOM Element attached to the DOM _and within the viewport_ of the browser for `.setDragImage`.",
- "notes_by_num":{
- "1":"Partial support refers to no support for the `dataTransfer.files` or `.types` objects",
- "2":"Partial support refers to not supporting `.setDragImage`",
- "3":"Partial support refers to limited supported formats for `dataTransfer.setData`/`getData`.",
- "4":"Not supported in Chromium browsers on Android 6 or older."
- },
- "usage_perc_y":79.8,
- "usage_perc_a":1.68,
- "ucprefix":false,
- "parent":"",
- "keywords":"draganddrop, draggable",
- "ie_id":"",
- "chrome_id":"",
- "firefox_id":"",
- "webkit_id":"",
- "shown":true
- }
|