首页 > 其他分享 >js实现元素拖拽

js实现元素拖拽

时间:2024-06-06 15:30:14浏览次数:22  
标签:style vueuse 元素 useDraggable js 拖拽 dragref

采用vueuse中的useDraggable,使用便捷,不需要过多复杂的操作

实现流程

在项目中安装vueuse

npm i @vueuse/core

然后在需要用到的页面引入useDraggable

import { useDraggable } from "@vueuse/core";

使用

通过调用useDraggable函数,将需要进行拖拽的元素dragref作为入参传入,同时传入元素在页面中的初始位置(x:150,y:300)

获取返回数据:(均是ref响应式数据,使用时需加.value)

        style:值为left:px;top:px,用来动态绑定元素样式(:style="style"),实时改变元素位置,所以这里拖拽的元素样式需要手动加个定位(absolute等,看具体使用),不然位置信息不生效。这里只需要在标签元素上添加获取的style样式就可随意拖动元素啦

        isDragging:布尔值,判断是否处于拖拽状态

<div ref="dragref" class="dragcls" :style="style">请拖拽我</div>
const dragref = ref<HTMLElement | null>(null);
const {style,x,y,position,isDragging} = useDraggable(dragref, {
  initialValue: { x: 150, y: 300 },
});

完整代码

<template>
  <div>
    <div ref="dragref" class="dragcls" :style="style">请拖拽我</div>
  </div>
</template>

<script setup lang="ts">
import {ref} from 'vue'
import { useDraggable } from "@vueuse/core";
const dragref = ref<HTMLElement | null>(null);
const {style,x,y,position,isDragging} = useDraggable(dragref, {
  initialValue: { x: 150, y: 300 },
});
</script>
<style>
.dragcls{
  width: 100px;
  height: 50px;
  background-color: bisque;
  cursor: move;
  position:absolute;
}
</style>

标签:style,vueuse,元素,useDraggable,js,拖拽,dragref
From: https://blog.csdn.net/m0_67475286/article/details/139499254

相关文章

  • 七(汇编程序设计):已知一个M行N列的矩阵A,它的元素按行的顺序存于内存中,试编写求每行元素
    代码DSEGSEGMENTARRDB15H,22H,3H,0E4H,0A5H,56H,7H,18H DB31H,12H,13H,24H,45H,26H,47H,18H DB12H,25H,33H,34H,45H,66H,47H,81H DB10H,21H,63H,54H,56H,0C6H,0A7H,38HMDB4N DB8RowSumdw4DUP(0)ColSumdw8DUP(0)DSEGENDSCSEGS......
  • Azure 函数(Node.js):如何从代码中读取上传到 Azure 证书刀片的公钥(.cer)?
    我在Node.js上运行了AzureFunctions。(另外,请注意,通过应用程序服务计划运行的底层操作系统是Windows)让我先绕道而行。一直以来,我都是从Node.js代码访问AzureKeyVault,因此我知道如何从Node.js代码访问KeyVault,这样看起来就像这样:co......
  • python基本语法元素
    1.输入与输出实现人机交互。输出:使用print()函数print("Hello,World!")#简单文本输出,输入:使用input()函数,用户输入默认被视为字符串name=input("请输入你的名字:")print("你好,"+name)2.注释单行注释:使用#符号#这是一个单行注释多行注释:使用三个单引号......
  • 004基于SSM+Jsp的高校四六级报名管理系统
    开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示前台首页登录界面个人中心报名界面学生管理报名管理报名记录准考记录身份认证考试资讯......
  • 003基于SSM+Jsp+Mysql的美好生活日志网
    开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示前台首页用户注册用户登录日记信息管理员登录用户管理日记信息管理美食信息管理景点信息管......
  • 球化天然石墨氯离子含量检测 石墨材料微量元素测定
    球化天然石墨的检测方法和标准1.球化天然石墨简介球化天然石墨是一种由高碳天然鳞片石墨经机械力法加工而成的具有椭圆形或球形的石墨产品。球化天然石墨具有孔隙率低、抗氧化性好、结构均匀细密、空隙缺陷少、弹性适中、易成型等特点,是锂离子电池负极材料的主要原料之一。......
  • js 数组各种常见的操作
    JavaScript中的数组提供了多种操作方法,以下是一些常见的数组操作示例:1创建数组javascriptconstnumbers=[1,2,3,4,5];2访问数组元素javascriptconsole.log(numbers[0]);//输出:13修改数组元素javascriptnumbers[0]=10;4数组长度javascriptc......
  • js检测资源是否存在
    this.getPicture(()=>{console.log(‘成功’)},url);//获取图片getPicture(conBack,url){letthat=this;//使用示例this.checkResource(url).then(exists=>{if(exists){c......
  • js实现点击切换图片,常用于图片画廊、产品展示、选项卡切换等
            以下代码实现产品展示或图片画廊相关的功能。具体来说,它实现了一个带有导航和对应内容区域的产品展示页面。用户通过导航来浏览不同的产品/项目,并在内容区域中查看与每个产品/项目相关的详细信息(在这种情况下是两张图片)。导航与内容的联动:页面有一个导航区域(......
  • 获取JSON某一部分数据
    //代码StringtaskParamsJson=dbBackAsynTask.getTaskParams();//json字符串ObjectMapperobjectMapper=newObjectMapper();//因为在非静态方法里面使用,new这个工具类JsonNodeparamsJson=objectMapp......