拖动基本实现

Posted Web Snippets

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拖动基本实现相关的知识,希望对你有一定的参考价值。

拖动相关事件:dragstart, drag, dragenter, dragleave, dragover, drop, dragend.

如下图,将三个圆拖动到矩形里面:

 

html结构:

<div class="row">
    <div class="span-6 dragTarg"></div>
</div>
<div class="row">
    <div class="span-6 dragItems">
        <div draggable="true" class="red"></div>
        <div draggable="true" class="blue"></div>
        <div draggable="true" class="green"></div>
    </div>
</div>

CSS:

.row{
  margin: 10px;
}

.row .dragTarg{
  width: 100px;
  height: 40px;
  background-color: #ccc;
}
.dragTarg div,
.dragItems div{
  width: 30px;
  height: 30px;
  border-radius: 15px;
  display: inline-block;
}

.red{background-color: #f00}
.blue{background-color: #00f}
.green{background-color: #0f0}

JS:

var circles = document.querySelectorAll(\'.dragItems div\');
for(var i=0;i<circles.length;i++){
  var circle = circles[i];
  circle.addEventListener(\'dragstart\',onDragStart,false);
  circle.addEventListener(\'dragend\',onDragEnd,false);
}

function onDragStart(e){
  this.style.border = \'5px solid #000\';
 //拖动某个圆形时,保存其样式名(或者id),以便后面能通过样式名找到。
  e.dataTransfer.setData(\'text\',this.className);
}
function onDragEnd(e){
  this.style.border = \'none\';
}

var dragTarg = document.querySelector(\'.dragTarg\');
dragTarg.addEventListener(\'dragenter\', onDragEnter);
function onDragEnter(e){
  this.style.border = \'3px #aaa dashed\';
}

dragTarg.addEventListener(\'dragover\', onDragOver);
function onDragOver(e){
   //只有阻止了dragover的默认行为,才会有drop事件发送出来。
  //否则无法监听到drop事件。
  e.preventDefault();
}
dragTarg.addEventListener(\'drop\',onDrop,false);
function onDrop(e){
  //e.preventDefault();
  
  var className = e.dataTransfer.getData(\'text\');
 //根据保存的样式名,找到拖动的圆形
  var ele = document.querySelector(\'.dragItems .\'+className);
 //将其添加到矩形中,即原来的圆被移走。
  this.appendChild(ele);
}

以上是关于拖动基本实现的主要内容,如果未能解决你的问题,请参考以下文章

html PHP代码片段: - AJAX基本示例:此代码演示了使用PHP和JavaScript实现的基本AJAX功能。

上下拖动片段

Android从地图片段底部拖动回收器视图

Final Cut Pro X中的音视频片段如何自由拖动?

拖动基本实现

Android 中SeekBar拖动条控件的基本用法