Das HTML5 Canvas-Element per Drag-and-Drop-Element

Kämpfen um diese Arbeit zu arbeiten. Hier ist mein code:

<canvas id="graphCanvas" ondrop="drop(event)" ondragover="allowDrop(event)" height=600 width=1000 style="border:1px solid #000000;"></canvas>
                        <img id="img1" src="./images/arrow_up.svg" draggable="true" onmousedown="get_pos(event)" ondragstart="drag(event)"/>
                    <script type="text/javascript">
                        function init() {
                            var canvas = document.getElementById("graphCanvas");
                            var context = canvas.getContext("2d");

                            context.lineWidth = 2;
                            }
                            var pos;
                            function allowDrop(ev) {
                                ev.preventDefault();
                            }
                            function get_pos(ev){
                                pos = [ev.pageX, ev.pageY];
                            }
                            function drag(ev) {
                                ev.dataTransfer.setData("Text",ev.target.id);
                            }

                            function drop(ev) {
                                ev.preventDefault();
                                var offset = ev.dataTransfer.getData("text/plain").split(',');
                                var data=ev.dataTransfer.getData("Text");

                                var img = canvas = document.getElementById("img1");
                                var dx = pos[0] - img.offsetLeft;
                                var dy = pos[1] - img.offsetTop;
                                document.getElementById("graphCanvas").getContext("2d").drawImage(document.getElementById(data), ev.pageX - dx, ev.pageY - dy);
                            }
                    </script>

Ist es wohl zu ein ziehbar Bild, das ich ablegen können, in eine Leinwand. Sobald das Bild in den canvas-Bereich, der Benutzer kann dann verschieben Sie das Bild um. Leider kann ich nicht scheinen, um es funktioniert. Das Bild sollte angezeigt werden, wenn Sie legen Sie es in der Nähe der oberen linken, aber das Bild erscheint in der unteren rechten.

Wie kann ich dieses problem beheben?

InformationsquelleAutor user3298953 | 2014-02-11
Schreibe einen Kommentar