首页 > 其他分享 >事件监听——拖拽事件drag

事件监听——拖拽事件drag

时间:2023-04-19 10:33:17浏览次数:31  
标签:max 拖拽 监听 drag 事件 document event

在项目中遇到需要拖拽元素的需求,一开始考虑的是鼠标的mousedown、mouseup、mousemove等事件组合,之后研究发现元素本身存在drag事件,可以直接调用监听:

/**
* 添加监听事件,实现拖拽功能
*/
    handleAddDomListen() {
       //具体拖拽元素
      const Refs = this.$refs.layoutsToolbarRef
      // 开始拖拽
      document.addEventListener('dragstart', function (event) {
        //dataTransfer.setData()方法设置数据类型和拖动的数据
        event.dataTransfer.setData('Text', event.target.id)
        //修改拖动元素的透明度
        event.target.style.opacity = '1'
      })
      /* 拖动完成后触发 */
      document.addEventListener('dragend', function (event) {
       
        event.target.style.opacity = '1'
        const max = document.body.clientHeight - Refs.offsetHeight
        let moveTo = event.clientY > max ? max : event.clientY < 0 ? 0 : event.clientY
        Refs.style.top = moveTo + 'px'
      })
    }

  参考文档:https://www.runoob.com/try/try.php?filename=tryjsref_ondrag_all

标签:max,拖拽,监听,drag,事件,document,event
From: https://www.cnblogs.com/kuoluozq/p/17332420.html

相关文章

  • vue不同页面方法调用|跨页面传参|事件总线
    事件总线需要在不同页面间传递参数或者进行方法调用,可以使用事件总线1.引入中间js在src下的Utils文件夹下创建一个Bus.js其内容如下importVuefrom'vue'exportdefaultnewVue()2.A页面(发起请求)importEventfrom'@/utils/Bus'Event.$emit('getlog',参数)3.B页面(......
  • Oracle等待事件(二)—— free buffer wait 常见原因及对应解决方法
    首先看看官方文档中的描述Thiswaiteventindicatesthataserverprocesswasunabletofindafreebufferandhaspostedthedatabasewritertomakefreebuffersbywritingoutdirtybuffers.Adirtybufferisabufferwhosecontentshavebeenmodified.Dirtyb......
  • Unity框架:JKFrame2.0学习笔记(五)——事件系统(2)
    前言上一篇记录了框架的事件系统的内部构成和实现,这篇记录下事件系统的使用。如何使用新建脚本EventTestusingJKFrame;usingUnityEngine;publicclassEventTest:MonoBehaviour{voidStart(){//添加监听EventSystem.AddEventListener("inp......
  • 网页事件的模拟
    unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,OleCtrls,SHDocVw,mshtml,StdCtrls;typeTForm1=class(TForm)WebBrowser1:TWebBrowser;ButtonLogin:TButton;ButtonRefresh:......
  • IE和Google浏览器事件传递参数不同
    左键标示,IE里面是1,Google里面是0,右键都是2.判断为左键,0或1都是<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><spanid="t-p"οnmοusedοwn="whichButtonDown(e......
  • js EventLoop事件循环机制
    1、js是单线程语言,其事件分为:同步任务和异步任务,异步任务分为宏任务与微任务;2、执行顺序为:同步任务(主流程任务)--->微任务 ---->宏任务先执行同步任务,遇到异步任务则放入任务队列中,等同步任务执行完毕,执行任务队列中的微任务,再执行宏任务...主线程从"任务队列"中读取事件,这......
  • python+playwright 学习-52 iframe 定位与操作元素,监听事件,执行JS脚本总结
    前言本篇全面总结关于iframe的定位,iframe上元素的操作(输入框,点击等),iframe上的事件监听与iframe上执行JS脚本的总结。iframe对象的定位定位iframe对象,总的来说有四种方法page.frame_locator(selector)通过page对象直接定位iframe对象,传selector选择器参数page.loca......
  • DOM事件模型
    一、事件模型:1、事件的促发会经历从上到下的捕获阶段,再经历从下到上的冒泡阶段;2、addEventListener(type,fn,true/false)可设置第三个参数选择阶段;3、可以使用event.stopPropagation()阻止捕获/冒泡;二、事件委托:把一个或者一组元素的事件委托到它的父层或者更外层元素上。优......
  • pyqt5-事件
    1、介绍pyqt提供了事件机制使用户和程序进行交互。2、xxed方法组件的类中声明的类似xxed形式的方法,用于表示事件,使用时将其调用connect方法,指定处理方法。示例:xx.clicked.connect(self.opt)绑定组件对象的鼠标单击事件,如果触发,则调用opt方法3、xxEvent方法组件的类中声......
  • Hooks与事件绑定
    Hooks与事件绑定在React中,我们经常需要为组件添加事件处理函数,例如处理表单提交、处理点击事件等。通常情况下,我们需要在类组件中使用this关键字来绑定事件处理函数的上下文,以便在函数中使用组件的实例属性和方法。ReactHooks是React16.8引入的一个新特性,其出现让React的函数组......