ondragstart 事件

  • 在拖动目标上触发事件 (源元素):
    • ondragstart - 用户开始拖动元素时触发
    • ondrag - 元素正在拖动时触发
    • ondragend - 用户完成元素拖动后触发

  • 释放目标时触发的事件:
    • ondragenter - 当被鼠标拖动的对象进入其容器范围内时触发此事件
    • ondragover - 在元素正在拖动到放置目标时触发:
    • ondragleave - 当在可拖动的元素移出放置目标时执行
    • ondrop - 在一个拖动过程中,释放鼠标键时触发此事件
.droptarget {
    float: left; 
    width: 100px; 
    height: 35px;
    margin: 15px;
    padding: 10px;
    border: 1px solid #aaaaaa;
}


<p>该实例演示了如何使用 HTML DOM 向 文档对象添加 "ondragstart", "ondrag", "ondragover" 和 "ondrop" 事件。 </p>
<p>在两个矩形框中来回拖动 p 元素:</p>
<div class="droptarget">
  <p draggable="true" id="dragtarget">拖动我!</p>
</div>
<div class="droptarget"></div>
<p style="clear:both;"><strong>注意:</strong>Internet Explorer 8 及更早 IE 版本或 Safari 5.1 及更早版本的浏览器不支持 drag 事件。</p>
<p id="demo"></p>

/* 拖动时触发*/

document.ondragstart = function(event) {
    event.dataTransfer.setData("Text", event.target.id);
    document.getElementById("demo").innerHTML = "开始拖动 p 元素";
};
document.ondragend = function(event) {
    document.getElementById("demo").innerHTML = "完成 p 元素的拖动";
};
/* 拖动完成后触发*/
document.ondragover = function(event) {
    event.preventDefault();
};
document.ondrop = function(event) {
    event.preventDefault();
    if ( event.target.className == "droptarget" ) {
        var data = event.dataTransfer.getData("Text");
        event.target.appendChild(document.getElementById(data));
    }
};

posted @ 2021-12-09 09:18  naonaoa  阅读(313)  评论(0)    收藏  举报