005.xhtml (3091B)
1 <?xml version="1.0" encoding="utf-8"?> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src="/resources/testdriver.js"></script> 6 <script src="/resources/testdriver-vendor.js"></script> 7 <script src="/resources/testdriver-actions.js"></script> 8 <script src="support/dropEffect-test-helper.js"></script> 9 <script src="../resources/test-helper.js"></script> 10 <head> 11 <title>SVG image drag and drop: allowed effects 'copy','move','link'</title> 12 <style type="text/css"> 13 div { 14 display: inline-block; 15 vertical-align: top; 16 background-color: olive; 17 color: white; 18 padding: 20px; 19 width: 100px; 20 height: 100px; 21 } 22 23 div:nth-child(2) { 24 background-color: green; 25 } 26 27 div:nth-child(3) { 28 background-color: teal; 29 } 30 </style> 31 </head> 32 <body> 33 <p> 34 Drag these SVG images. Each has a different effectAllowed and color. 35 </p> 36 <p> 37 <img id="copy-drag" ondragstart="event.dataTransfer.effectAllowed = 'copy'" 38 src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20version%3D%221.1%22%20width%3D%22100px%22%20height%3D%22100px%22%20viewBox%3D%220%200%20100%20100%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22olive%22/%3E%3C/svg%3E" 39 alt="Olive SVG circle for copy" /> 40 <img id="move-drag" ondragstart="event.dataTransfer.effectAllowed = 'move'" 41 src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20version%3D%221.1%22%20width%3D%22100px%22%20height%3D%22100px%22%20viewBox%3D%220%200%20100%20100%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22green%22/%3E%3C/svg%3E" 42 alt="Green SVG circle for move" /> 43 <img id="link-drag" ondragstart="event.dataTransfer.effectAllowed = 'link'" 44 src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20version%3D%221.1%22%20width%3D%22100px%22%20height%3D%22100px%22%20viewBox%3D%220%200%20100%20100%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22teal%22/%3E%3C/svg%3E" 45 alt="Teal SVG circle for link" /> 46 </p> 47 <p> 48 Drop targets for each effect: 49 </p> 50 <p> 51 <div id="copy-drop" ondragover="onDragOver(event, 'copy')">copy</div> 52 <div id="move-drop" ondragover="onDragOver(event, 'move')">move</div> 53 <div id="link-drop" ondragover="onDragOver(event, 'link')">link</div> 54 </p> 55 </body> 56 <script> 57 function onDragOver(event, effect) { 58 event.preventDefault(); 59 event.dataTransfer.dropEffect = effect; 60 } 61 62 async function test() { 63 await new Promise(loaded => window.addEventListener("load", loaded)); 64 65 for (const effect of ['copy', 'move', 'link']) { 66 const dragImage = document.getElementById(effect + '-drag'); 67 const dropDiv = document.getElementById(effect + '-drop'); 68 69 dragDropTest( 70 dragImage, dropDiv, dropEffectOnDropCallBack, 71 'dropEffect should match effectAllowed on drop for ' + effect); 72 } 73 } 74 test(); 75 </script> 76 </html>