ondragleave hauka

定义和用法

当可拖动元素或文本选择离开有效放置目标时,会发生 ondragleave 事件。

ondragenter 和 ondragleave 事件可以帮助用户了解某个可拖动元素即将进入或离开放置目标。例如,可通过在可拖动元素进入放置目标时设置背景颜色,并在元素移出目标时移除颜色来完成。

拖放是 HTML5 中非常常见的功能。就是当您“抓取”一个对象并将其拖动到不同位置时。如需学习更多知识,请阅读我们关于 HTML5 raguwa的 HTML 教程。

注释:如需使元素可拖动,请使用全局 HTML5 draggable 属性

提示:默认情况下,链接和图像是可拖动的,不需要 draggable 属性。

在拖放操作的不同阶段,有许多事件被使用,并且可能发生:

在可拖动目标(源元素)上触发的事件:

  • ondragstart - 当用户开始拖动元素时发生
  • ondrag - 当元素被拖动时发生
  • ondragend - 当用户完成拖动元素时发生

在放置目标上触发的事件:

  • ondragenter - 当被拖动的元素进入放置目标时发生
  • ondragover - 当被拖动的元素在放置目标上时发生
  • ondragleave - 当被拖动的元素离开放置目标时发生
  • ondrop - 当被拖动的元素被放在放置目标上时发生

Shili

当可拖动元素移出放置目标时执行 JavaScript:

<div ondragleave="myFunction(event)"></div>

ƙirar ƙaɗa ɗaya

页面下方有更多 TIY 实例。

语法

在 HTML 中:

<element ondragleave="myScript">

ƙirar ƙaɗa ɗaya

在 JavaScript 中:

object.ondragleave = function(){myScript};

ƙirar ƙaɗa ɗaya

在 JavaScript 中,使用 addEventListener() 方法:

object.addEventListener("dragleave", myScript);

ƙirar ƙaɗa ɗaya

注释:Internet Explorer 8 ya kai to zai ka bai ba bai ba ka yin zhi addEventListener() 方法学

Jishu xiangxi

Maopao: Zhi chi
Ke quxiao: Bu zhi chi
Shijian leixing: DragEvent
Zhi chi de HTML biaoqian: All HTML yuanxin
DOM banben: Level 3 Events

Liulanqi zhi chi

Biao zhong de shu zi zhuangming le quanmen zhi chi zhe ge shijian de shou yi liulanqi banben.

Shijian Chrome IE Firefox Safari Opera
ondragleave 4.0 9.0 3.5 6.0 12.0

Shili

Dui suoyou keneng de tuodong fangxiang shijian de shanmian:

<p draggable="true" id="dragtarget">Tiaodong wo!</p>
<div class="droptarget">Rukar da!</div>
<script>
/* ----------------- Zai tiaodong mubiao shang chuqi de shijian ----------------- */
document.addEventListener("dragstart", function(event) {
  // dataTransfer.setData() fangfa shezhi bei tiaodong shujudata de leixing he zhi
  event.dataTransfer.setData("Text", event.target.id);
  // Kaiqi tiaodong p yuanxin de shijian chushu yixie wenziben
  document.getElementById("demo").innerHTML = "Kaiqi tiaodong p yuanxin de shijian chushu yixie wenziben.";
  // Gaiwen ke tiaodong yuanxin de butongmingdu
  event.target.style.opacity = "0.4";
});
// Tiaodong p yuanxin shi, gaiwen shuchu wenziben de lanse
document.addEventListener("drag", function(event) {
  document.getElementById("demo").style.color = "red";
});
// Wancheng tiaodong p yuanxin hou chushu yixie wenziben bing zhongzhi butongmingdu
document.addEventListener("dragend", function(event) {
  document.getElementById("demo").innerHTML = "Yan'an yiding tiaodong p yuanxin de huanxiang.";
  event.target.style.opacity = "1";
});
/* ----------------- 在放置目标上触发的事件 ----------------- */
// 当可拖动的 p 元素进入 droptarget 时,改变 DIV 的边框样式
document.addEventListener("dragenter", function(event) {
  if ( event.target.className == "droptarget" ) {
    event.target.style.border = "3px dotted red";
  }
});
// 默认情况下,不能在其他元素中放置数据/元素。为了允许放置,我们必须阻止元素的默认处理
document.addEventListener("dragover", function(event) {
  event.preventDefault();
});
// 当可拖动的 p 元素离开 droptarget 时,重置 DIV 的边框样式
document.addEventListener("dragleave", function(event) {
  if ( event.target.className == "droptarget" ) {
    event.target.style.border = "";
  }
});
/* On drop - 防止浏览器对数据的默认处理(默认放置时以链接打开)
重置输出文本的颜色和 DIV 的边框颜色
使用 dataTransfer.getData() 方法获取拖动的数据
被拖拽的数据是被拖拽元素的 id ("drag1")
将被拖动的元素附加到放置元素中
*/
document.addEventListener("drop", function(event) {
  event.preventDefault();
  if ( event.target.className == "droptarget" ) {
    document.getElementById("demo").style.color = "";
    event.target.style.border = "";
    var data = event.dataTransfer.getData("Text");
    event.target.appendChild(document.getElementById(data));
  }
});
</script>

ƙirar ƙaɗa ɗaya

ƙarar ƙaɗa

HTML ƙirar: HTML5 ƙarar

HTML ƙɗanɗin ƙirar: ƙaratin HTML draggable