Ahm*_*otb 7 css internet-explorer svg drag-and-drop microsoft-edge
有没有办法在IE/Edge中显示svg元素的拖动精灵?
例:
这个可以毫无问题地拖动
<img draggable="true" src="file.jpg" />
Run Code Online (Sandbox Code Playgroud)
这个没有显示拖动精灵
<img draggable="true" src="file.svg" />
Run Code Online (Sandbox Code Playgroud)
演示:http: //codepen.io/akotb/pen/WGNOXv
如果您拖动的div具有使用svg符号的直接(或间接)子级,则它也不起作用
<div draggable="true"> <svg><use xlink:href="#circle" /></svg></div>
Run Code Online (Sandbox Code Playgroud)
同样用该示例更新了演示
我给你的建议可以使你的 SVG 正常工作,但我建议你也阅读以下文档:
\n\n假设这是您的 HTML 部分
\n\n<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>\n\n<img id="drag1" src="http://demosthenes.info/assets/images/thumbnails/homer-simpson.svg" draggable="true"\nondragstart="drag(event)" width="336" height="69">\nRun Code Online (Sandbox Code Playgroud)\n\n这是你的 CSS 样式
\n\nimg {\n width: 150px;\n height: 150px;\n}\n\n#div1, #div2 {\n float: left;\n width: 100px;\n height: 35px;\n margin: 10px;\n padding: 10px;\n border: 1px solid black;\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我们还可以添加一些 Javascript 代码,以便更容易处理跨浏览器兼容性
\n\nfunction allowDrop(ev) {\n ev.preventDefault();\n}\n\nfunction drag(ev) {\n ev.dataTransfer.setData("text", ev.target.id);\n}\n\nfunction drop(ev) {\n ev.preventDefault();\n var data = ev.dataTransfer.getData("text");\n ev.target.appendChild(document.getElementById(data));\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我们一起可以做到http://codepen.io/mhadaily/pen/QKjgAo
\n\n更多文件:
\n\n\n\n2-使用 HTML5\xe2\x80\x99s 本机拖放 API
\n\n\n\n更新:
\n\n\n\n\n由于 IE 让它与 SVG 可拖动一起使用有点棘手,所以我用另一个适用于 IE8+ 和触摸屏的解决方案更新了这篇文章。Interactive.js 是可以提供帮助的轻量级库之一。这是解决方案https://jsfiddle.net/mhadaily/pkewdttr/,您可以看到它在 IE8+ 和其他浏览器中运行得非常流畅。请查看 interactjs.io 网站以获取更多文档。
\n
如果您需要更多帮助,请询问我。
\n