JavaScript事件——拖拉事件

2020-12-13 15:00

阅读:383

标签:aci   打开   end   app   ble   def   pac   允许   asc   

拖拉事件的种类

拖拉(drag)指的是,用户在某个对象上按下鼠标键不放,拖动它到另一个位置,然后释放鼠标键,将该对象放在那里。

具体的api可查看

拖拽变色demo

此区域可拖拉
div.addEventListener('dragstart', function (e) {
  this.style.backgroundColor = 'red';
}, false);

div.addEventListener('dragend', function (e) {
  this.style.backgroundColor = 'green';
}, false);

拖拽操作demo

/* HTML 代码如下
 
该节点可拖拉
*/ // 被拖拉节点 var dragged; document.addEventListener('dragstart', function (event) { // 保存被拖拉节点 dragged = event.target; // 被拖拉节点的背景色变透明 event.target.style.opacity = 0.5; }, false); document.addEventListener('dragend', function (event) { // 被拖拉节点的背景色恢复正常 event.target.style.opacity = ''; }, false); document.addEventListener('dragover', function (event) { // 防止拖拉效果被重置,允许被拖拉的节点放入目标节点 event.preventDefault(); }, false); document.addEventListener('dragenter', function (event) { // 目标节点的背景色变紫色 // 由于该事件会冒泡,所以要过滤节点 if (event.target.className === 'dropzone') { event.target.style.background = 'purple'; } }, false); document.addEventListener('dragleave', function( event ) { // 目标节点的背景色恢复原样 if (event.target.className === 'dropzone') { event.target.style.background = ''; } }, false); document.addEventListener('drop', function( event ) { // 防止事件默认行为(比如某些元素节点上可以打开链接), event.preventDefault(); if (event.target.className === 'dropzone') { // 恢复目标节点背景色 event.target.style.background = ''; // 将被拖拉节点插入目标节点 dragged.parentNode.removeChild(dragged); event.target.appendChild( dragged ); } }, false);

JavaScript事件——拖拉事件

标签:aci   打开   end   app   ble   def   pac   允许   asc   

原文地址:https://www.cnblogs.com/lisaShare/p/11571363.html


评论


亲,登录后才可以留言!