美文网首页
使用HTML5的Drag和Drop属性实现拖放效果

使用HTML5的Drag和Drop属性实现拖放效果

作者: 毕竟1米八 | 来源:发表于2019-12-20 20:18 被阅读0次

拖放是一种常见的特性,即抓取对象以后拖到另一个位置。在 HTML5中,拖放是标准的一部分,任何元素都能够拖放。

一、原理
此笔记中,只使用到了1个属性和3个方法。分别如下:

  • draggable -- 设置是否拖拽
  • ondragstart -- 拖拽开始时触发
  • ondragover -- 拖拽中触发
  • ondrop -- 拖拽结束时触发

二、踩坑
这里以vue语法为例。首先拖拽对象需要设置为draggable="true",并且添加一个方法为@dragstart="drag()";然后在拖拽目标对象上增加2个方法,分别是@drop="drop()"和@dragover="draging()"。

<div
  :key="index"
  style="cursor: default;"
  v-else-if="typeStatus"
  :class="{
    occupybg: true
  }"
  @click.stop="$emit('getOccupyCurData',occupyCurData)"
  @drop='drop($event,item)'
  @dragover='draging($event)'
>
  <!-- 占用 --> 
  {{ item.patientInfoText ? item.patientInfoText : '' }}{{item.treatDeviceModelName ? '('+item.treatDeviceModelName+')':''}}
</div>
<div v-else @click="notNllocationClick" class="notarrangebg" :key="index"  
  @drop='drop($event,item)'
  @dragover='draging($event)'>
  <!-- 未分配 -->
</div>

注意了,在dragover方法中需要阻止默认事件,否则drop方法无法触发。

//拖拽中 
draging(event) {
  console.log('拖拽中');
  console.log(event);
  event.preventDefault();
},

剩下的逻辑无非就是拖拽时获取当前元素值以及拖拽后的目标元素值,然后根据参数写ajax再重新渲染数据即可。如下:

drag(event,item) {
  console.log('格子拖拽开始');
  console.log(event);
  console.log(item);
  //获取患者详情
  getMyCurrDateTreatArrangeList().then(res => {
    console.log(res);
    var obj = {};
    res.find((resItem) => {
        if(item.treatPlanOrderDataId == resItem.treatPlanOrderDataId){
            obj = resItem;
        }
    })
    console.log(obj);
    this.$store.commit('setAddArrangeTrim',{
        fromArrangeDataId:obj.arrangeDataId,
        fromArrangeFixDataId:obj.arrangeFixDataId,
        patientDataId: obj.patientDataId
    })
  })
}

三、效果

相关文章

  • HTML5 拖放笔记

    HTML5拖放(Drag 和 Drop) 拖放(Drag 和 drop)是 HTML5 标准的组成部分。 拖放 拖...

  • HTML5拖放

    1、HTML5 拖放(Drag 和 Drop) 拖放(Drag 和 drop)是 HTML5 标准的组成部分。 拖...

  • HTML5 拖放(Drag 和 Drop)

    HTML5 拖放(Drag 和 Drop) 拖放(Drag 和 drop)是 HTML5 标准的组成部分。 将w3...

  • 控件拖拽

    JavaScript实现最简单的拖拽效果 HTML5 drag & drop 拖拽与拖放简介 基于HTML5 dr...

  • 使用HTML5的Drag和Drop属性实现拖放效果

    拖放是一种常见的特性,即抓取对象以后拖到另一个位置。在 HTML5中,拖放是标准的一部分,任何元素都能够拖放。 一...

  • 学习笔记-拖放/地理定位-2017.2.10

    一、HTML5 拖放(Drag 和 Drop) 1、设置元素为可拖放 首先,为了使元素可拖动,把 draggabl...

  • HTML5中的图片拖放

    拖放函数: 1.HTML5拖放 Drag拖和drop放是HTML5标准的组成成分 2.拖放开始: ondragst...

  • HTML5拖放API附带示例

    拖放(Drag 和 drop)是HTML5标准的组成部分 拖放 拖放是一种常见的特性,即抓取对象以后拖放到其他位置...

  • HTML5丨拖放(Drag & Drop)

    一、拖放 拖放(Drag 和 drop)是 HTML5 标准的组成部分。拖放是一种常见的特性,即抓取对象以后拖到另...

  • HTML 5 拖放

    拖放(Drag 和 drop)是 HTML5 标准的组成部分。 拖放 拖放是一种常见的特性,即抓取对象以后拖到另一...

网友评论

      本文标题:使用HTML5的Drag和Drop属性实现拖放效果

      本文链接:https://www.haomeiwen.com/subject/dsgbnctx.html