zoukankan      html  css  js  c++  java
  • eldialog添加拖拽功能

    import Vue from 'vue'
    
    Vue.directive('dialogDrag', {
      bind(el, binding, vnode, oldVnode) {
        const dialogHeaderEl = el.querySelector('.el-dialog__header')
        const dragDom = el.querySelector('.el-dialog')
        dialogHeaderEl.style.cursor = 'move'
    
        const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null)
    
        dialogHeaderEl.onmousedown = (e) => {
          const disX = e.clientX - dialogHeaderEl.offsetLeft
          const disY = e.clientY - dialogHeaderEl.offsetTop
    
          let styL, styT
          if (sty.left.includes('%')) {
            styL = +document.body.clientWidth * (+sty.left.replace(/\%/g, '') / 100)
            styT = +document.body.clientHeight * (+sty.top.replace(/\%/g, '') / 100)
          } else {
            styL = +sty.left.replace(/\px/g, '')
            styT = +sty.top.replace(/\px/g, '')
          }
    
          document.onmousemove = function(e) {  
            const l = e.clientX - disX
            const t = e.clientY - disY
    
            dragDom.style.left = `${l + styL}px`
            dragDom.style.top = `${t + styT}px`
    
            // 将此时的位置传出去
            // binding.value({x:e.pageX,y:e.pageY})
          }
    
          document.onmouseup = function(e) {
            document.onmousemove = null
            document.onmouseup = null
          }
        }
      }
    })
    

      在directives目录中新建v-drag.js,将以上代码拷贝进去

      创建vdireactive.js

    import drag from './v-drag';
    
    export { drag };
    

    index.js中代码如下

    import Vue from 'vue';
    import * as directives from '@/common/directives/vdirectives.js';
    // 注册指令
    Object.keys(directives).forEach(k => Vue.directive(k, directives[k]));
    

      

    在main.js中引入

    import '@/common/directives'
    

      

    代码搬运工
  • 相关阅读:
    iOS 6 Tutorials
    iPhone:文本设计的注意事项
    Beginning Storyboards in iOS 5 Part 2
    代友招聘一名网站开发人员
    利用反射自己写的一个ModelHelper类
    SQL中 对逻辑值取反赋值的语句
    记点uml的表现方式
    我的2008年
    Framework 4.0 新关键字dynamic 之我见(一)
    我的采集小程序配置篇
  • 原文地址:https://www.cnblogs.com/tw6668/p/15629659.html
Copyright © 2011-2022 走看看