Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to make canvas move with HTML5 feature only?
    text
    copied!<p>I want to move the shape that I draw with the canvas ex: I draw rectangle . How I can move it to specific area with drag-able attribute ? and using java script to add the listener. </p> <p>waiting for help.</p> <p>This is my code :</p> <pre><code> in Java script file : var c=document.getElementById("rectangle"); var cxt=c.getContext("2d"); cxt.fillStyle="#009933"; cxt.fillRect(20,10 ,150,75); function dragStart(ev) { //allow move ev.dataTransfer.effectAllowed='move'; ev.dataTransfer.dropEffect='move'; //on transfer var style = ev.target.getAttribute("id").style; ev.dataTransfer.setData("Text",ev.target.getAttribute("id")); //ev.dataTransfer.setDragImage(ev.target,0,0); ev.dataTransfer.setDragImage(ev.target,(parseInt(style.getPropertyValue("left"),10) - ev.clientX) ,(parseInt(style.getPropertyValue("top"),10) - ev.clientY)); return true; } function dragEnter(ev) { return true; } function dragOver(event) { event.preventDefault(); return false; } function dragDrop(ev) { //var offset = event.dataTransfer.getData("text/plain").split(','); var dm = document.getElementById(ev.dataTransfer.getData("Text")); // dm.style.left = (event.clientX + parseInt(offset[0],10)) + 'px'; // dm.style.top = (event.clientY + parseInt(offset[1],10)) + 'px'; ev.target.appendChild(dm); ev.stopPropagation(); ev.preventDefault(); return false; } HTML File: &lt;div ondragenter="return dragEnter(event)" ondrop="return dragDrop(event)" ondragover="return dragOver(event)"&gt; &lt;canvas id="rectangle" width="200px" height="150px" draggable="true"&gt;&lt;/canvas&gt; &lt;/div&gt; &lt;div id="target"ondragenter="return dragEnter(event)" ondrop="return dragDrop(event)" ondragover="return dragOver(event)"&gt; &lt;/div&gt; </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload