vue3中如何实现标准元素 拖动 功能 【收藏备用】

       最近在用vue3做一个企业后台管理系统的项目,在登录页面的时候需要用户滑动滑块来获取验证码登录系统 用到了元素拖放 这里也顺便记录一下  如何使用的.

目录

1.功能介绍

2.代码部分

3 实现过程

3.1 设置可拖动元素 

 3.2 拖动什么 

3.3 放到何处

3.4 进行放置


1.功能介绍

        如下图所示是登录页面的一部分 用户需要输入手机号码 滑动色块至最右边解锁滑块 解锁成功会提示已完成 并且北京颜色变成绿色, 获取验证码之后输入对应的验证码, 登录系统.

需要注意:  

1.和在vue中绑定事件和@click一样 都不用on 的  ondragstart  事件 写成@dragstart="" 就好了.

2.接受元素的大小不小于 拖放元素的宽高. 

<img id="drag1" src="." draggable="true" @dragstart="drag($event)" >

关于css3 页面布局也可参考博主文章:前端常见的页面布局以及Flexbox总结 【收藏备用】_常用网页盒子布局-CSDN博客 

2.代码部分

是一个图片拖放到另一个div中, 实例中是这样的 任何元素都可以拖放的.

<el-form :model="form" label-width="auto" style="max-width: 600px"><el-form-item><el-input v-model="form.name" placeholder="请输入手机号码登录/注册" /></el-form-item><el-form-item class="yzm"><el-input v-model="form.region" placeholder="请输入验证码"/><a @click="getYzm">{{yzmText}}</a></el-form-item><div class="slide-box" ><img id="drag1" src="../../../src/assets/img.jpg" draggable="true" @dragstart="drag($event)"  class="slide-box-str"><div class="slide-box-center" :class="[isActive ? activeClass : '']"><span :class="[isFinished ? finishedClass : '']">{{slidetext}}</span><el-icon><Check /></el-icon></div><div id="div1" @drop="drop($event)" @dragover="allowDrop($event)" class="slide-box-end"></div></div><el-form-item><el-button type="primary" @click="onSubmit">登录</el-button></el-form-item></el-form>
  const allowDrop = (event) => {event.preventDefault(); }const drag = (event) => {isShowTip.value = false;event.dataTransfer.setData("Text",event.target.id);}const drop = (event) => {event.preventDefault();let data=event.dataTransfer.getData("Text");event.target.appendChild(document.getElementById(data));}

 

3 实现过程

3.1 设置可拖动元素 

如下图所示 设置img为可拖动元素 

<img draggable="true">
 3.2 拖动什么 

ondragstart 和 setData()

ondragstart 属性调用了一个函数,drag(event),它规定了被拖动的数据, 

 dataTransfer.setData() 方法设置被拖数据的数据类型和值

Text 是一个 DOMString 表示要添加到 drag object 的拖动数据的类型。值是可拖动元素的 id ("drag1")

3.3 放到何处

- ondragover

ondragover 事件规定在何处放置被拖动的数据

默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。

这要通过调用 ondragover 事件的 event.preventDefault() 方法:

event.preventDefault()
3.4 进行放置

- ondrop

当放置被拖数据时,会发生 drop 事件  ondrop 属性调用了一个函数,drop(event)

function drop(ev)
{ev.preventDefault();var data=ev.dataTransfer.getData("Text");ev.target.appendChild(document.getElementById(data));
}

 4.总结

  • 主要介绍了拖放元素实现的功能展示
  • 代码部分如何实现的
  • 实现过程以及用到的函数

谢谢大家阅读,如果发现问题,请评论区留言,大家共同进步,感谢.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1159:斐波那契数列

【题目描述】 用递归函数输出斐波那契数列第n项。0,1&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;5&#xff0c;8&#xff0c;13…… 【输入】 一个正整数n,表示第n项。 【输出】 第n项是多少。 【输入样例】 3 【输出样例】 1 代码实现 /*斐波那契*/ int fbnq(i…

小水电远程集控运维系统简介及应用价值

一、政策背景 2023年7月14日水利部办公厅印发了《智能化小型水电站技术指南( 试行)》和&#xff08;《小水电集控中心技术指南( 试行)》两个指导性文件&#xff0c;明确要求实施小水电绿色改造和现代化提升工程&#xff0c;推进建设智能集约的现代化小水电。 二、系统概述 小…

公司电脑加全屏水印怎么加(怎么打水印满屏)?4个方法精选!包教包会!

在企业管理中&#xff0c;为了保护公司机密信息的安全&#xff0c;给公司电脑添加全屏水印已成为一种常见的安全措施。 全屏水印不仅可以震慑潜在的窥探者&#xff0c;还能在信息不慎泄露时提供追溯线索。 那么&#xff0c;如何给公司电脑添加全屏水印呢&#xff1f; 以下是4…

AI大模型开发架构设计(18)——基于大模型构建企业知识库案例实战

文章目录 1 LLM 大模型在工作中的实际应用以及局限性LLM 大模型工作中实际应用大模型2点局限性 2 基于大模型和向量数据库的企业级知识库架构剖析向量数据库向量数据库选型知识库文档检索增强(Retrieval Augmented Generation)向量数据库应用技术总体架构向量数据库应用离线索引…

磐石云语音助手拦截介绍

呼叫中心用户实际应用场景下最高会有超过30%的和语音助手&#xff1b;无声主要是进入了语音信箱;如&#xff1a;“听到滴声后留言”&#xff0c;”漏话提醒““发送请按1&#xff0c;重录请按2”以及拨打过程中客户主动拒接产生的”您拨打的用户正忙“&#xff0c;”关机“”停…

mysqldump命令搭配source命令完成数据库迁移备份

mysqldump 命令使用 需保证mysqld在运行中&#xff0c; 这个命令的目的是将数据库导出到文件中&#xff0c;例如 mysqldump -uusername -ppassword database > db.sql 注意该命令不是在MySQL客户端&#xff08;即MySQL命令行&#xff09;执行的&#xff0c;而是在系统命…

Spring框架之适配器模式 (Adapter Pattern)

适配器模式&#xff08;Adapter Pattern&#xff09;详解 适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它的主要作用是将一个类的接口转换成客户端期望的另一个接口&#xff0c;使原本由于接口不兼容而无法一起工作的类可以协同工作。…

10款PDF合并工具的使用体验与推荐!!!

在如今的信息洪流中&#xff0c;我们几乎每个人都被淹没在大量的数字文档之中。无论是学生、教师还是职场人士&#xff0c;我们都需要高效地管理和处理这些文档。而PDF文件&#xff0c;凭借其跨平台的稳定性和通用性&#xff0c;成了最常用的文档格式之一。我们经常需要处理、编…

2025秋招春招行测测评所用题库总结+测评题目解答思路和总结+测评题库汇总

现在校招找工作都要面对测评这一关&#xff0c;如果没有做好准备很容易就招聘流程截止&#xff0c;下面是校招常用的测评题库。最后分享赛码和智鼎题目答题思路。 测评所用题库 北森 在秋季、春季校园招聘中&#xff0c;有超过70%的单位企业行测系统选择北森题库&#xff0c;…

Oracle EBS工具脚本

文章目录 值集查询快码查询查询可执行请求批量取消请求职责查询死锁处理脚本获取包体查询最后编译信息 值集查询 SELECT ffs.flex_value_set_id,ffs.flex_value_set_name,ffv.flex_value,ffv.flex_value_meaning,ffv.description,ffv.flex_valueFROM applsys.fnd_flex_value_se…

Redis做分布式锁

&#xff08;一&#xff09;为什么要有分布式锁以及本质 在一个分布式的系统中&#xff0c;会涉及到多个客户端访问同一个公共资源的问题&#xff0c;这时候我们就需要通过锁来做互斥控制&#xff0c;来避免类似于线程安全的问题 因为我们学过的sychronized只能对线程加锁&…

《MYSQL45讲》kill不掉的线程

kill query 线程id :终止这个线程正在执行的语句 kill connection 线程id :关闭这个线程的连接&#xff0c;也会先停止这个线程正在执行的语句。这个connection可以缺省。 本文讨论的情况是&#xff1a;使用了kill命令&#xff0c;却没有断开连接&#xff0c;show processli…

CodeFlow评分系统

C o d e F l o w CodeFlow CodeFlow rating体系&#xff1a; 参考文献&#xff1a; https://www.cnblogs.com/ruierqwq/p/17973570/cf-at-rating https://blog.csdn.net/CSDNhdlg/article/details/123729562 https://www.jianshu.com/p/1ae01cf56f0a?fromtimeline 1 1 1、段位…

IntelliJ+SpringBoot项目实战(四)--快速上手数据库开发

对于新手学习SpringBoot开发&#xff0c;可能最急迫的事情就是尽快掌握数据库的开发。目前数据库开发主要流行使用Mybatis和Mybatis Plus,不过这2个框架对于新手而言需要一定的时间掌握&#xff0c;如果快速上手数据库开发&#xff0c;可以先按照本文介绍的方式使用JdbcTemplat…

html5多媒体标签

文章目录 HTML5新增多媒体标签详解&#xff1a;视频标签与音频标签视频标签<video>音频标签<audio>代码案例 HTML5新增多媒体标签详解&#xff1a;视频标签与音频标签 HTML5引入了多项新特性&#xff0c;其中多媒体标签的引入为网页开发带来了革命性的变化。这些标…

12、Linux系统的网络基本设置

查看网络接口信息ifconfig ip addr/ip a #简单查看网络接口信息 ifconfig #表示只显示当前活跃的设备接口信息 ifconfig -a #查看当前主机所有的&#xff08;all&#xff09;网络设备&#xff0c;包括未运行的设备。 如我们查看本机网卡ens33的…

PHP:通往动态Web开发世界的桥梁

PHP&#xff0c;全名为“PHP: Hypertext Preprocessor”&#xff0c;是世界上最流行的服务器端脚本语言之一。它是动态网站开发的中流砥柱&#xff0c;用于构建从简单博客到复杂企业级应用的各种网络平台。在这篇文章中&#xff0c;我们将详细探讨PHP的起源、核心功能、开发流程…

react 中 FC 模块作用

React.FC 是一个泛型类型&#xff0c;用于定义函数组件的类型 一、类型定义和代码可读性 1. 明确组件类型 使用React.FC定义一个组件时&#xff0c;使得组件的输入&#xff08;props&#xff09;和输出&#xff08;返回的 React 元素&#xff09;都有明确的类型定义。 impo…

【Qt 蓝牙服务器实现】

在 Qt 中实现一个蓝牙服务器可以使用 Qt Bluetooth 模块。下面是一个基本的蓝牙服务器示例,它能够接受来自客户端的连接。 首先,请确保你已经安装了 Qt Bluetooth 模块并在项目文件中包含了相关库。 1. 项目文件 (.pro) 配置 在项目文件中添加以下行,以确保包含 Qt Bluet…

RabbitMQ高效的消息队列中间件原理及实践

RabbitMQ&#xff1a;高效的消息队列中间件及其 PHP 实现 一、什么是 RabbitMQ&#xff1f; RabbitMQ 是一个开源的消息队列中间件&#xff0c;使用 Erlang 编写&#xff0c;遵循 AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;协议。它的主要功能是提供一种…