vue3-directives 自定义指令 做个聊天窗口拖拽和拖拽按钮

Posted ThinkerWing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue3-directives 自定义指令 做个聊天窗口拖拽和拖拽按钮相关的知识,希望对你有一定的参考价值。

<button v-focus style="position: absolute">drag</button>

directives: 
    focus: 
      // 指令的定义
      mounted(el, binding, vnode) 
        /** el可以获取当前dom节点,并且进行编译,也可以操作事件 **/
        /** binding指的是一个对象,一般不用 **/
        /** vnode 是 Vue 编译生成的虚拟节点 **/
        let x = 0
        let y = 0
        let l = 0
        let t = 0
        let isDown = false
        el.onmousedown = function (e) 
          x = e.clientX
          y = e.clientY
          l = el.offsetLeft
          t = el.offsetTop
          isDown = true
          el.style.cursor = 'move'
          window.onmousemove = function (e) 
            if (isDown == false) 
              return
            
            let nx = e.clientX
            let ny = e.clientY
            let nl = nx - (x - l)
            let nt = ny - (y - t)
            el.style.left = nl + 'px'
            el.style.top = nt + 'px'
          
          window.onmouseup = function () 
            isDown = false
            el.style.cursor = 'default'
            window.onmousemove = null
            window.onmouseup = null
          
          return false
        
      
    
  

以上是关于vue3-directives 自定义指令 做个聊天窗口拖拽和拖拽按钮的主要内容,如果未能解决你的问题,请参考以下文章

vue3-directives 自定义指令 做个聊天窗口拖拽和拖拽按钮

vue--钩子函数1

Vue练习六十:08_02_自定义滚动条(缺键盘左右箭头功能)

Laravel 5.8 做个知乎 2 ——用户登录本地化和自定义消息

桌面太单调?一起用Python做个自定义动态壁纸,竟然还可以放视频!

vue 全局自定义指令注册