一个简单的Vue2例子讲明白拖拽drag、移入dragover、放下drop的触发机制先后顺序

本文主要是介绍一个简单的Vue2例子讲明白拖拽drag、移入dragover、放下drop的触发机制先后顺序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

几个小细节说明:

  1. 执行顺序dragstart→dragover→drop
  2. 被拖拽的物体必须要设置draggable="true"(实际上只需要draggable就可以了,默认就是true),否者默认一般是不允许被拖拽的(图片除外)
  3. 被放入的位置必须要加上监听@dragover="$event.preventDefault()",否者不会触发@drop监听
  4. 如需要从被拖拽物体传递信息到放置区域中,可以使用e.target.dataTransfer的setData设置自定义的参数传值(字符串类型,如需传object请JSON.stringify一下下),使用e.target.dataTransfer的getData去获取对应的内容
<template><div :class="$options.name"><div class="drag" draggable @dragstart="dragstart">被拖拽物体</div><div class="drop" @dragover="$event.preventDefault()" @drop="drop">放入的位置</div></div>
</template>
<script>
export default {name: "testDrag",methods: {dragstart(e) {let 需要传输的内容 = {cssText: `background-color: #F56C6C;color: white;font-size: 24px;`,text: `<p>支持HTML</p><br><b>显示这句话</b>`,};e.dataTransfer.setData("自定义字段名", JSON.stringify(需要传输的内容));},drop(e) {let 需要传输的内容 = JSON.parse(e.dataTransfer.getData("自定义字段名"));e.currentTarget.style.cssText = 需要传输的内容.cssText;e.currentTarget.innerHTML = 需要传输的内容.text;},},
};
</script>
<style lang="scss" scoped>
.testDrag {.drag {width: 100px;height: 100px;color: white;background-color: #f56c6c;display: flex;justify-content: center;align-items: center;}.drop {margin-top: 20px;width: 300px;height: 300px;background-color: #409eff;display: flex;justify-content: center;align-items: center;flex-direction: column;}
}
</style>

下一个进阶的例子,实现拖拽过程中,被放入的区域和放入的物体同时发生状态(样式)变化简单讲述ondragstart、drag、ondragend、ondragenter、ondragover、ondrop、ondragleave七个与拖拽相关的监听事件,并运用实现拖拽过程放置样式变化-CSDN博客文章浏览阅读81次。【代码】一个简单的Vue2例子讲明白拖拽drag、移入dragover、放下drop的触发机制先后顺序。一个简单的Vue2例子讲明白拖拽drag、移入dragover、放下drop的触发机制先后顺序-CSDN博客。时触发(即便不移动也会触发)https://blog.csdn.net/qq_37860634/article/details/136784325

这篇关于一个简单的Vue2例子讲明白拖拽drag、移入dragover、放下drop的触发机制先后顺序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/820215

相关文章

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Jvm sandbox mock机制的实践过程

《Jvmsandboxmock机制的实践过程》:本文主要介绍Jvmsandboxmock机制的实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景二、定义一个损坏的钟1、 Springboot工程中创建一个Clock类2、 添加一个Controller

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行

windows和Linux安装Jmeter与简单使用方式

《windows和Linux安装Jmeter与简单使用方式》:本文主要介绍windows和Linux安装Jmeter与简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows和linux安装Jmeter与简单使用一、下载安装包二、JDK安装1.windows设

CSS 样式表的四种应用方式及css注释的应用小结

《CSS样式表的四种应用方式及css注释的应用小结》:本文主要介绍了CSS样式表的四种应用方式及css注释的应用小结,本文通过实例代码给大家介绍的非常详细,详细内容请阅读本文,希望能对你有所帮助... 一、外部 css(推荐方式)定义:将 CSS 代码保存为独立的 .css 文件,通过 <link> 标签