资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

HTML5如何实现多个元素的拖放功能

本篇文章为大家展示了HTML5如何实现多个元素的拖放功能,代码简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

成都创新互联公司是一家专注于成都网站设计、成都网站制作与策划设计,正宁网站建设哪家好?成都创新互联公司做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:正宁等地区。正宁做网站价格咨询:028-86922220

HTML5如何实现多个元素的拖放功能

话不多说,我们直接看示例

示例一:使用UL标记拖放多个元素

代码如下:

ListDragDrop.html




    
    
  
  


   
删除
  • 海豚
  • 鲸鱼
  • 企鹅
  • 北极熊
  • 雪狐

ListDragDrop.css

#del{
  width:120px;  
  height:60px;  
  border: solid 2px #ff6a00;
  }
ul#list1 > li {
  display: block;  
  width: 150px;  
  border: 1px solid #808080;
  }

说明:

加载页面时执行加载功能。load函数中的以下代码将dragover和drop事件分配给[Delete]的div。当元素被拖动到Delete框时,会调用onDragOver函数,当它被删除时,会调用onDrop函数。

var delbox = document.getElementById('del');
  delbox.addEventListener('dragover', onDragOver, false);
  delbox.addEventListener('drop', onDrop, false);

调用querySelectorAll方法以获取ul标记中的li元素。for循环反复处理中获取的元素数组,并将每个元素的“draggable”属性设置为true。此过程将其设置为可拖动对象。它还分配了一个dragstart事件。

var elems = document.querySelectorAll('ul#list1 > li');  
for (var i = 0; i < elems.length; i++) {
    el = elems[i];
    el.setAttribute('draggable', 'true');
    el.addEventListener('dragstart', onDragStart, false);
  }

拖动列表项时,将调用以下onDragStart函数。调用dataTransfer对象的setData方法以在dataTransfer对象中存储元素的ID。

function onDragStart(e) {
      e.dataTransfer.effectAllowed = 'copy';
      e.dataTransfer.setData('text', this.id);
    }

当在拖放区域中拖动列表中的项目时,将调用以下onDragOver函数。由于DragOver没有特别的处理,因此它调用PreventDefault方法来取消事件。

function onDragOver(e) {
      e.preventDefault();
    }

如果列表的项目在拖放区域内被删除,则可以调用onDrop函数。调用stopPropagation方法取消事件的处理。然后,我们从dataTransfer对象中获取ID。通过取得ID,您可以获得丢弃区域中丢弃的元素。调用getElementById方法并从ID中获取LI标记的对象。通过使用获取的LI对象的paerntNode属性访问父节点,调用removeChild方法,删除被丢弃的列表的项目。

function onDrop(e) {      
if (e.stopPropagation) e.stopPropagation();      
var eid = e.dataTransfer.getData('text');      
var elem = document.getElementById(eid);
      elem.parentNode.removeChild(elem);
    }

运行结果:

使用Web浏览器显示上述HTML文件。将显示如下所示的效果。

HTML5如何实现多个元素的拖放功能

可以拖动页面底部列表中的项目。比如拖动“企鹅”这一项,将其拖动到删除区域,然后下面列表项中就没有第三项“企鹅”了,具体效果如下图所示

HTML5如何实现多个元素的拖放功能

HTML5如何实现多个元素的拖放功能

拖动其他项都是一样的效果,五项都可以删除。

上述内容就是HTML5如何实现多个元素的拖放功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


文章标题:HTML5如何实现多个元素的拖放功能
分享路径:http://cdkjz.cn/article/ppgdjg.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220