如何修复拖放JavaScript
我创建了这个页面和脚本来使用JavaScript、HTML和CSS拖放对象。我将聚光灯对象跟随鼠标悬停在页面项上并将其放置在容器上,但我的问题是拖放不起作用 代码如下: HTML: JavaScript: 小提琴:如何修复拖放JavaScript,javascript,html,css,drag-and-drop,Javascript,Html,Css,Drag And Drop,我创建了这个页面和脚本来使用JavaScript、HTML和CSS拖放对象。我将聚光灯对象跟随鼠标悬停在页面项上并将其放置在容器上,但我的问题是拖放不起作用 代码如下: HTML: JavaScript: 小提琴: 你为什么不使用html5呢 <head> <script> function allowDrop(ev) { ev.preventDefault(); } function drag(ev) { ev.dataTransfer.setData
你为什么不使用html5呢
<head>
<script>
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("Text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<img id="drag1" src="img_logo.gif" draggable="true"
ondragstart="drag(event)" width="336" height="69">
你为什么不使用html5呢
<head>
<script>
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("Text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<img id="drag1" src="img_logo.gif" draggable="true"
ondragstart="drag(event)" width="336" height="69">
我强烈建议您考虑使用jqueryui来实现这一点。查看和小部件。我强烈建议您使用jQuery UI来实现这一点。查看和小部件。好的,我发现了一些让JSFIDLE工作的方法 首先,元素不可拖动的原因与伪元素spotlight:after有关。它被定位为“绝对”,顶部、左侧、底部和右侧的值为-25px。我不认为他在做你想做的事。具有这些位置的元素将占据整个屏幕,因为它将从左边框左侧的25px延伸到右边框之后的25px,以此类推。临时解决方案是添加css属性
pointer-events: none;
第二,你有
<body onload="initPage()">
通常情况下,这很好,但在JSFIDLE中,javascript窗口的作用域位于page onload处理程序内部,因此函数的作用域是本地的。要使它们进入全局范围,您可以做几件事,但我暂时更改了要显式添加到窗口范围的函数:
window['initPage'] = function() {
另外,因为我们已经在onload处理程序中确定了作用域,所以我删除了
window.onload = function() {
范围界定,包括端部支撑
这里是工作的方法好的,我发现了一些让JSFIDLE工作的方法 首先,元素不可拖动的原因与伪元素spotlight:after有关。它被定位为“绝对”,顶部、左侧、底部和右侧的值为-25px。我不认为他在做你想做的事。具有这些位置的元素将占据整个屏幕,因为它将从左边框左侧的25px延伸到右边框之后的25px,以此类推。临时解决方案是添加css属性
pointer-events: none;
第二,你有
<body onload="initPage()">
通常情况下,这很好,但在JSFIDLE中,javascript窗口的作用域位于page onload处理程序内部,因此函数的作用域是本地的。要使它们进入全局范围,您可以做几件事,但我暂时更改了要显式添加到窗口范围的函数:
window['initPage'] = function() {
另外,因为我们已经在onload处理程序中确定了作用域,所以我删除了
window.onload = function() {
范围界定,包括端部支撑
这里是工作的感谢注释,但我们需要使用本机JavaScript,因为它是最快的感谢注释,但我们需要使用本机JavaScript,因为它是最快的love this pointer events:none;应用于文本div的解决方案。。。谢谢爱这个指针事件:无;应用于文本div的解决方案。。。谢谢