广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue实现拖拽窗口功能
  • 865
分享到

vue实现拖拽窗口功能

2024-04-02 19:04:59 865人浏览 八月长安
摘要

本文实例为大家分享了Vue拖拽窗口简单实现代码,供大家参考,具体内容如下 效果 实现代码 <template>   <transition>     <

本文实例为大家分享了Vue拖拽窗口简单实现代码,供大家参考,具体内容如下

效果

实现代码

<template>
  <transition>
    <!--    绑定style中top和left-->
    <div class="moveBox" :style="position" v-show="show">
      <div
        class="moveHead"
        @mousedown="mousedown"
        @mousemove="mousemove"
        @mouseup="mouseup"
        @mouseleave="mousemove"
      ></div>
      <!--      关闭按钮-->
      <div class="close" @click="toggleShow">×</div>
      <div class="content">
        <!--插槽-->
        <slot></slot>
      </div>
    </div>
  </transition>
</template>

<script>
export default {
  name: "moveBox",
  data() {
    return {
      show: true,//是否显示
      x: 100,//left:x
      y: 50,//top:y
      leftOffset: 0,//鼠标距离移动窗口左侧偏移量
      topOffset: 0,//鼠标距离移动窗口顶部偏移量
      isMove: false,//是否移动标识
    };
  },
  computed: {
    //top与left加上px
    position() {
      return `top:${this.y}px;left:${this.x}px;`;
    },
  },
  methods: {
    //控制打开关闭
    toggleShow() {
      this.x = 100;
      this.y = 50;
      this.show = !this.show;
    },
    mousedown(event) {
      //鼠标按下事件
      this.leftOffset = event.offsetX;
      this.topOffset = event.offsetY;
      this.isMove = true;
    },
    //鼠标移动
    mousemove(event) {
      if (!this.isMove) {
        return;
      }
      this.x = event.clientX - this.leftOffset;
      this.y = event.clientY - this.topOffset;
    },
    //鼠标抬起
    mouseup() {
      this.isMove = false;
    },
  },
};
</script>

<style lang="less" scoped>
.moveBox {
  width: 500px;
  height: 300px;
  position: fixed;
  box-shadow: 0 0 5px 3px #95a5a6;
  .moveHead {
    height: 30px;
    background-color: #bdc3c7;
    cursor: move;
  }
  .close {
    position: absolute;
    right: 0;
    top: 0;
    line-height: 30px;
    font-size: 24px;
    cursor: pointer;
    display: block;
    width: 30px;
    height: 30px;
    text-align: center;
  }
}
.v-enter,
.v-leave-to {
  opacity: 0;
  transfORM: scale(0.5);
}
.content {
  padding: 10px;
}
.v-enter-active,
.v-leave-active {
  transition: all 0.5s ease;
}
</style>

使用

<template>
  <div class="home">
    <button @click="$refs.moveBox.toggleShow()">toggle moveBox</button>
    <move-box ref="moveBox">
      Hello World
    </move-box>
  </div>
</template>

代码没什么难度,主要是使用了定位,在鼠标移动事件中定义top和left值。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: vue实现拖拽窗口功能

本文链接: https://www.lsjlt.com/news/145374.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue实现拖拽窗口功能
    本文实例为大家分享了vue拖拽窗口简单实现代码,供大家参考,具体内容如下 效果 实现代码 <template>   <transition>     <...
    99+
    2022-11-13
  • vue怎么实现拖拽窗口功能
    今天小编给大家分享一下vue怎么实现拖拽窗口功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。效果实现代码<templ...
    99+
    2023-06-29
  • vue实现图片拖拽功能
    本文实例为大家分享了vue实现图片拖拽功能的具体代码,供大家参考,具体内容如下 1、主要涉及到的元素知识,示意图: 2、js代码部分: directives: { dr...
    99+
    2022-11-12
  • vue实现弹窗拖拽效果
    本文实例为大家分享了vue实现弹窗拖拽效果的具体代码,供大家参考,具体内容如下 前言 实现拖拽其实简单来说就分为三步 一、创建一个js文件 因为本身dialog窗口不具备移动拖拽能力...
    99+
    2022-11-13
  • Vue实用功能之实现拖拽元素、列表拖拽排序
    目录Vue实现拖拽元素、列表拖拽排序组件使用补充:排序动画总结Vue实现拖拽元素、列表拖拽排序 需求:    1、左右两个容器,左边和右边的元素可以拖动...
    99+
    2022-11-13
    vue列表拖拽排序 vue实现拖拽功能 vue实现组件拖拽
  • vue实现放大缩小拖拽功能
    本文实例为大家分享了vue实现放大缩小拖拽功能的具体代码,供大家参考,具体内容如下 点击放大至全屏 再次点击缩小至原始  这个弹框是基于element dialog的基础上...
    99+
    2022-11-12
  • vue怎么实现图片拖拽功能
    本篇内容介绍了“vue怎么实现图片拖拽功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!主要涉及到的元素知识,示意图:js代码部分:dire...
    99+
    2023-06-25
  • vue怎么实现拖拽元素功能
    这篇“vue怎么实现拖拽元素功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue怎么实现拖拽元素功能”文章吧。示例代码如...
    99+
    2023-07-04
  • vuedraggable实现拖拽功能
    本文实例为大家分享了vuedraggable实现拖拽功能的具体代码,供大家参考,具体内容如下 项目需求 简单实现一个vue拖拽小案例,右侧选项区拖拽到左侧目标区域,拖动成功的不能再...
    99+
    2022-11-13
  • vue+element-ui+sortable.js实现表格拖拽功能
    本文实例为大家分享了vue+element-ui+sortable.js实现表格拖拽的具体代码,供大家参考,具体内容如下 效果如下: 1.vue使用cli创建项目就不说了,本人使用...
    99+
    2022-11-13
  • js如何实现拖拽功能
    这篇文章主要为大家展示了“js如何实现拖拽功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“js如何实现拖拽功能”这篇文章吧。效果图:(红色方块可任意拖动)代码...
    99+
    2022-10-19
  • android实现拖拽裁剪功能
    本文实例为大家分享了android拖拽框,裁剪出图片的具体代码,供大家参考,具体内容如下 import android.graphics.Bitmap; import androi...
    99+
    2022-11-13
  • iOS实现UIButton的拖拽功能
    本文实例为大家分享了iOS实现UIButton拖拽功能的具体代码,供大家参考,具体内容如下 在APP界面中,把资讯等功能设置为悬浮的Button并且能够让用户自己拖拽调整位置很常用。...
    99+
    2022-11-13
    iOS UIButton 拖拽
  • vuedraggable实现简单拖拽功能
    本文实例为大家分享了vuedraggable实现拖拽功能的具体代码,供大家参考,具体内容如下 一、下载依赖 npm i -S vuedraggable 二、代码块 <templ...
    99+
    2022-11-13
  • vuedraggable怎么实现拖拽功能
    这篇文章主要介绍了vuedraggable怎么实现拖拽功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vuedraggable怎么实现拖拽功能文章都会有所收获,下面我们一起来看看吧。一、下载依赖npm&nbs...
    99+
    2023-06-29
  • Vue.Draggable拖拽功能怎么实现
    这篇文章主要讲解了“Vue.Draggable拖拽功能怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue.Draggable拖拽功能怎么实现”吧!使用cmd命令在项目根目录下下载安...
    99+
    2023-07-04
  • vue实现页面div盒子拖拽排序功能
    vue 实现页面div盒子拖拽排序功能前言:目前市面上有很多实现拖拽排序功能的插件和方法,本节不过多累述,只讲一种:css3的transition-group方法 效果图: 1....
    99+
    2022-11-12
  • 怎么利用Vue实现拖拽穿梭框功能
    今天小编给大家分享一下怎么利用Vue实现拖拽穿梭框功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、使用原生js实现拖拽...
    99+
    2023-07-04
  • Vue draggable怎么实现从左到右拖拽功能
    这篇文章主要介绍了Vue draggable怎么实现从左到右拖拽功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue draggable怎么实现从左到右拖拽功能文章都会有所收获,下面我们...
    99+
    2023-06-29
  • Angular+rxjs如何实现拖拽功能
    这篇文章主要介绍“Angular+rxjs如何实现拖拽功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Angular+rxjs如何实现拖拽功能”文章能帮助大家解决...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作