首页 > 其他分享 >vue自定义指令实现拖拽元素改变元素的宽度

vue自定义指令实现拖拽元素改变元素的宽度

时间:2022-12-02 10:24:12浏览次数:35  
标签:vue const 自定义 元素 document dragDom nw

// 自定义指令
  directives: {
    drag: {
      inserted: function (el) {
        const dragDom = el;
        dragDom.style.cursor = "e-resize";
        dragDom.onmousedown = (e) => {
          // 鼠标按下,计算当前元素距离可视区的距离
          const disX = e.clientX;
          const w = dragDom.clientWidth;
          const minW = 240;
          const maxW = 600;
          var nw;
          document.onmousemove = function (e) {
            // 通过事件委托,计算移动的距离
            const l = e.clientX - disX;
            // 改变当前元素宽度,不可超过最小最大值
            nw = w + l;
            nw = nw < minW ? minW : nw;
            nw = nw > maxW ? maxW : nw;
            dragDom.style.width = `${nw}px`;
          };

          document.onmouseup = function (e) {
            document.onmousemove = null;
            document.onmouseup = null;
          };
        };
      },
    },
  },
//在需要拖动的元素上添加自定义指令
      <div class="s-l" v-drag>

标签:vue,const,自定义,元素,document,dragDom,nw
From: https://www.cnblogs.com/qdyzhuang/p/16943586.html

相关文章

  • 转 vue3讲义 知识点 整理文档PPT
      vue3自学理论笔记 vue3讲义  知识点  整理文档PPT项目不忙时就学习新内容,知识不全。 1.vue2使用es5中的object.definedPropert对数据进行双向绑定......
  • 使用echarts 报错[Vue warn]: Error in mounted hook: “TypeError: Cannot read prop
    出现以下问题是在mounted()中使用官方示例的时候报了以下错误:Errorinmountedhook:“TypeError:Cannotreadproperty‘init’ofundefined”或Cannotreadproper......
  • Vue2+Vue3 - $attrs 的几种用法(1个或多个根元素、Options API 和 Composition API)
    使用Vue开发时,肯定会接触到组件的概念,无可避免的也会接触到组件通讯的概念。在Vue2中除了$attrs外,还有$listeners;Vue3把$listeners合并到$attrs里了。......
  • Vue3实现前端权限级别按钮控制
    编写permission.vue组件中的按钮设置为:增加、修改和删除三个按钮,为了让button按钮disabled时,可以让tooltip继续有效,在button外层加了个span。为了通过自定义指令中方便控......
  • vue 路由守卫
    vue路由守卫路由前置守卫(全局)to,即将要进入的目标,路由对象from,当前导航正要离开的路由next(需要填写函数)当满足条件时放行router.beforeEach((to,......
  • 微信小程序实战,基于vue2实现瀑布流
    1、什么是瀑布流呢?瀑布流,又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前......
  • Vue2(笔记08) - Vue核心 - 绑定Class样式、绑定Style样式
    绑定Class样式Vue里引入 ​​:class="xxx"​​ 来绑定样式,"xxx" 即可以是样式名,也可以是表达式,原有class 不动;​字符串写法适用于样式的类名不确定,需要动态指定​需求:......
  • vue局部刷新 (组件重载)
     组件重载的运用是当组件的数据产生了变化之时,需要通过重载来实现组件页面的刷新,而不是重新刷新URL进行重新请求,也可以理解为是局部刷新 步骤:在父级页面通过......
  • Vue2适用的视频组件
    Vue2适用的视频组件官方文档路径西瓜视频官方文档:http://v2.h5player.bytedance.com/gettingStarted/随笔制作参考:https://juejin.cn/post/7023547598724136990#hea......
  • vue3实战
    1.vue官方文档1.创建项目方式一:vite(推荐)npminitvue@latest会有如下提示Needtoinstallthefollowingpackages:create-vue@3Oktoproceed?(y)y------......