iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue项目中怎么实现el-dialog组件可拖拽效果
  • 280
分享到

vue项目中怎么实现el-dialog组件可拖拽效果

2023-06-26 05:06:35 280人浏览 八月长安
摘要

今天小编给大家分享一下Vue项目中怎么实现el-dialog组件可拖拽效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。0.

今天小编给大家分享一下Vue项目中怎么实现el-dialog组件可拖拽效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

0. 首先上图,看效果

vue项目中怎么实现el-dialog组件可拖拽效果

1. 实现方法

创建 drag.js文件 实现拖拽源码

export function startDrag(bar, target, callback) {    var params = {      top: 0,      left: 0,      currentX: 0,      currentY: 0,      flag: false,      cWidth: 0,      cHeight: 0,      tWidth: 0,      tHeight: 0    };      // 给拖动块添加样式    bar.style.cursor = 'move';      // 获取相关CSS属性    // o是移动对象    // var getCss = function (o, key) {    //   return o.currentStyle ? o.currentStyle[key] : document.defaultView.getComputedStyle(o, false)[key];    // };      bar.onmousedown = function (event) {      // 按下时初始化params      var e = event ? event : window.event;      params = {        top: target.offsetTop,        left: target.offsetLeft,        currentX: e.clientX,        currentY: e.clientY,        flag: true,        cWidth: document.body.clientWidth,        cHeight: document.body.clientHeight,        tWidth: target.offsetWidth,        tHeight: target.offsetHeight      };        // 给被拖动块初始化样式      target.style.margin = 0;      target.style.top = params.top + 'px';      target.style.left = params.left + 'px';        if (!event) {        // 防止IE文字选中        bar.onselectstart = function () {          return false;        }      }        document.onmousemove = function (event) {        // 防止文字选中        window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();          var e = event ? event : window.event;        if (params.flag) {          var nowX = e.clientX;          var nowY = e.clientY;          // 差异距离          var disX = nowX - params.currentX;          var disY = nowY - params.currentY;          // 最终移动位置          var zLeft = 0;          var zTop = 0;            zLeft = parseInt(params.left) + disX;          // 限制X轴范围          if (zLeft <= -parseInt(params.tWidth / 2)) {            zLeft = -parseInt(params.tWidth / 2);          }          if (zLeft >= params.cWidth - parseInt(params.tWidth * 0.5)) {            zLeft = params.cWidth - parseInt(params.tWidth * 0.5);          }            zTop = parseInt(params.top) + disY;          // 限制Y轴范围          if (zTop <= 0) {            zTop = 0;          }          if (zTop >= params.cHeight - parseInt(params.tHeight * 0.5)) {            zTop = params.cHeight - parseInt(params.tHeight * 0.5);          }            // 执行移动          target.style.left = zLeft + 'px';          target.style.top = zTop + 'px';        }          if (typeof callback == "function") {          callback(zLeft, zTop);        }      }        document.onmouseup = function () {        params.flag = false;        document.onmousemove = null;        document.onmouseup = null;      };    };  }

新建 directive.js 文件,创建vue指令配置文件

// 引入拖拽jsimport { startDrag } from './drag.js'const draggable = (el, binding) => {    // 绑定拖拽事件 [绑定拖拽触发元素为弹框头部、拖拽移动元素为整个弹框]    startDrag(el.querySelector('.el-dialog__header'), el.querySelector('.el-dialog'), binding.value);};const directives = {    draggable,};// 这种写法可以批量注册指令export default {  install(Vue) {      Object.keys(directives).forEach((key) => {      Vue.directive(key, directives[key]);    });  },};

main.js文件中全局引入vue指令

import directive from './utils/directive';Vue.use(directive) 第四步:使用v-draagble<el-dialog   v-draggable   title="新增"   :visible.sync="isshow"   @close="handleCancelConfigInfo">   <-- xxxx 弹框内容... -->   </el-fORM>   <div slot="footer">      <el-button size="small">取消</el-button>      <el-button size="small">保存</el-button>   </div></el-dialog>

注意事项

文件引入路径需前后保持一致

以上就是“vue项目中怎么实现el-dialog组件可拖拽效果”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: vue项目中怎么实现el-dialog组件可拖拽效果

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

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

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

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

下载Word文档
猜你喜欢
  • vue项目中实现el-dialog组件可拖拽效果
    目录0. 首先上图,看效果1. 实现方法参考资料0. 首先上图,看效果 1. 实现方法 第一步:创建 drag.js文件 实现拖拽源码 export function start...
    99+
    2024-04-02
  • vue项目中怎么实现el-dialog组件可拖拽效果
    今天小编给大家分享一下vue项目中怎么实现el-dialog组件可拖拽效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。0....
    99+
    2023-06-26
  • 拖拽插件sortable.js实现el-table表格拖拽效果
    目录问题描述案例一 简单拖拽代码附上案例二 el-table表格拖拽效果图代码附上问题描述 Sortable.js是一款优秀的js拖拽库,因为是原生js写的,所以性能不错,也支持移动...
    99+
    2024-04-02
  • 拖拽插件sortable.js如何实现el-table表格拖拽效果
    这篇文章将为大家详细讲解有关拖拽插件sortable.js如何实现el-table表格拖拽效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。问题描述Sortable.js是一款优秀的js拖拽库,因为是原生...
    99+
    2023-06-29
  • Vue实现可拖拽组件的方法
    本文为大家分享了Vue实现可拖拽、拖拽组件,供大家参考,具体内容如下 描述: 组件仅封装拖拽功能,内容通过#header、#default、#footer插槽 自定义 效果:&nbs...
    99+
    2024-04-02
  • vue-draggable怎么实现pc端拖拽效果
    本文小编为大家详细介绍“vue-draggable怎么实现pc端拖拽效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue-draggable怎么实现pc端拖拽效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-06-29
  • Android项目中怎么实现一个可拖拽界面
    本篇文章为大家展示了Android项目中怎么实现一个可拖拽界面,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。以自定义ImageView为例:public class FloatingImageVie...
    99+
    2023-05-31
    android roi 目中
  • vue怎么实现列表拖拽排序效果
    这篇文章主要介绍“vue怎么实现列表拖拽排序效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue怎么实现列表拖拽排序效果”文章能帮助大家解决问题。效果如下:<template>&nb...
    99+
    2023-06-29
  • VUE怎么使用draggable实现组件拖拽
    这篇文章主要讲解了“VUE怎么使用draggable实现组件拖拽”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VUE怎么使用draggable实现组件拖拽”吧!实现步骤1、导入draggab...
    99+
    2023-06-29
  • jQuery怎么实现拖拽排序效果
    这篇文章给大家分享的是有关jQuery怎么实现拖拽排序效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。增强动态增加Div效果原来没有新建动作,分析代码后发现很容易增强~~<...
    99+
    2024-04-02
  • JavaScript怎么实现拖拽排序效果
    这篇“JavaScript怎么实现拖拽排序效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript怎么实现拖拽...
    99+
    2023-06-30
  • 怎么使用vue+gojs实现拖拽流程图效果
    这篇文章主要介绍“怎么使用vue+gojs实现拖拽流程图效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用vue+gojs实现拖拽流程图效果”文章能帮助大家解决问题。一、流程图效果二、为什么...
    99+
    2023-07-05
  • vue中的可拖拽宽度div怎么实现
    这篇文章主要介绍“vue中的可拖拽宽度div怎么实现”,在日常操作中,相信很多人在vue中的可拖拽宽度div怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue中的可拖拽宽度div怎么实现”的疑惑有所...
    99+
    2023-06-29
  • JavaScript怎么实现模态框拖拽效果
    这篇文章主要介绍“JavaScript怎么实现模态框拖拽效果”,在日常操作中,相信很多人在JavaScript怎么实现模态框拖拽效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript怎么实现模...
    99+
    2023-06-22
  • 基于el-table封装的可拖拽行列、选择列组件的实现
    效果 需要环境 vue elementUI 拖拽插件Sortable.js 需配置属性 示例 <HTable :columns="columns" :d...
    99+
    2024-04-02
  • vue中怎么实现一个拖拽进度条滑动组件
    这期内容当中小编将会给大家带来有关vue中怎么实现一个拖拽进度条滑动组件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。调用组件如下:<slider :mi...
    99+
    2024-04-02
  • 怎么用JavaScript实现简单的拖拽效果
    这篇文章主要介绍“怎么用JavaScript实现简单的拖拽效果”,在日常操作中,相信很多人在怎么用JavaScript实现简单的拖拽效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用JavaScript...
    99+
    2023-06-25
  • React怎么结合Drag API实现拖拽效果
    本篇内容主要讲解“React怎么结合Drag API实现拖拽效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“React怎么结合Drag API实现拖拽效果”吧!认识拖拽鼠标...
    99+
    2023-07-05
  • JavaScript怎么实现登录框鼠标拖拽效果
    本文小编为大家详细介绍“JavaScript怎么实现登录框鼠标拖拽效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript怎么实现登录框鼠标拖拽效果”文章能帮助大家解决疑惑,下面跟着小编的思...
    99+
    2024-04-02
  • vue draggable组件实现拖拽及点击无效问题的解决
    目录一、效果图二、拖拽及点击无效解决方法三、vuedraggable的使用在实现一个移动端项目的时候,根据产品需求,要实现一个既能增加删除又可以拖拽调换位置的效果,然后我使用了dra...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作