Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的可拖动元素_Javascript_Html_Css_Drag And Drop_Draggable - Fatal编程技术网

javascript中的可拖动元素

javascript中的可拖动元素,javascript,html,css,drag-and-drop,draggable,Javascript,Html,Css,Drag And Drop,Draggable,如果我想使div可拖动,我必须指定一个引用父级还是不指定?例如,在jquery中,当一个元素可拖动时,它是否有一个引用父级?要拖动一个元素,只需添加draggable属性并将其值设置为true 这在Internet Explorer 8或更早版本等古老的浏览器上不起作用,因为它们不支持draggable属性 你可能想到的是一个下降目标。默认情况下,元素不能放置在其他元素中 请务必注意,以下拖动事件需要事件参数 ondrag:只要拖动元素,就会触发事件 ondragstart-拖动过程启动时触发

如果我想使div可拖动,我必须指定一个引用父级还是不指定?例如,在jquery中,当一个元素可拖动时,它是否有一个引用父级?

要拖动一个元素,只需添加
draggable
属性并将其值设置为
true

这在Internet Explorer 8或更早版本等古老的浏览器上不起作用,因为它们不支持
draggable
属性

你可能想到的是一个下降目标。默认情况下,元素不能放置在其他元素中

请务必注意,以下拖动事件需要
事件
参数

  • ondrag:只要拖动元素,就会触发事件

  • ondragstart-拖动过程启动时触发事件

  • ondragend-拖动过程完成时触发事件

  • ondragenter-当被拖动的元素进入放置目标时触发事件

  • ondragleave-当被拖动的元素离开放置目标时触发事件

  • ondragover-当拖动的元素位于放置目标上方时,将触发事件

要允许删除,我们必须通过
event.preventDefault
更改浏览器的默认行为

这个例子是W3Schools提供的。但是,它解释了拖放功能。不幸的是,没有用于拖放事件的
伪类,因此我们需要使用本机JavaScript

var demo=document.getElementById(“demo”);
//使用dataTransfer.setData()设置拖动数据的数据类型和值
//开始拖动时,段落将输出文本,不透明度将降低
document.addEventListener(“dragstart”,函数(事件){
event.dataTransfer.setData(“Text”,event.target.id);
demo.innerHTML=“已开始拖动p元素。”;
event.target.style.opacity=“0.4”;
});
document.addEventListener(“拖动”),函数(事件){
demo.style.color=“red”//更改输出文本的颜色
});
//完成拖动p元素并重置不透明度后,输出一些文本
文件。添加事件列表器(“dragend”,函数(事件){
demo.innerHTML=“已完成p元素的拖动。”;
event.target.style.opacity=“1”;
});
/*对放置目标激发的事件*/
//当可拖动的p元素进入droptarget时,更改div的边框样式
文件.附录列表器(“绘图器”,功能(事件){
if(event.target.className==“droptarget”){
event.target.style.border=“3px点红色”;
}
});
//默认情况下,不能在其他元素中删除数据/元素。为了允许删除,我们必须防止元素的默认处理
文件。添加事件列表器(“dragover”,功能(事件){
event.preventDefault();
});
//当可拖动的p元素离开droptarget时,重置div的边框样式
文件。添加事件列表器(“dragleave”,函数(事件){
if(event.target.className==“droptarget”){
event.target.style.border=“”;
}
});
/*放置时-防止浏览器默认处理数据(默认为放置时作为链接打开)
重置输出文本的颜色和DIV的边框颜色
使用dataTransfer.getData()方法获取拖动的数据
被拖动的数据是被拖动元素的id(“drag1”)
将拖动的元素追加到drop元素中
*/
document.addEventListener(“drop”),函数(事件){
event.preventDefault();
if(event.target.className==“droptarget”){
demo.style.color=“”;
event.target.style.border=“”;
var data=event.dataTransfer.getData(“文本”);
event.target.appendChild(document.getElementById(数据));
}
});
.droptarget{
浮动:左;
宽度:100px;
高度:35px;
利润率:15px;
填充:10px;
边框:1px实心#AAAAA;
}
在两个矩形之间来回拖动p元素:

拖动我

注意:在Internet Explorer 8和早期版本或Safari 5.1和早期版本中不支持拖动事件


要拖动元素,只需添加
draggable
属性,并将其值设置为
true

这在Internet Explorer 8或更早版本等古老的浏览器上不起作用,因为它们不支持
draggable
属性

你可能想到的是一个下降目标。默认情况下,元素不能放置在其他元素中

请务必注意,以下拖动事件需要
事件
参数

  • ondrag:只要拖动元素,就会触发事件

  • ondragstart-拖动过程启动时触发事件

  • ondragend-拖动过程完成时触发事件

  • ondragenter-当被拖动的元素进入放置目标时触发事件

  • ondragleave-当被拖动的元素离开放置目标时触发事件

  • ondragover-当拖动的元素位于放置目标上方时,将触发事件

要允许删除,我们必须通过
event.preventDefault
更改浏览器的默认行为

这个例子是W3Schools提供的。但是,它解释了拖放功能。不幸的是,没有用于拖放事件的
伪类,因此我们需要使用本机JavaScript

var demo=document.getElementById(“demo”);
//使用dataTransfer.setData()设置数据类型和值