Javascript 单击即可自动拖放

Javascript 单击即可自动拖放,javascript,html,jquery,mousedown,mouseup,Javascript,Html,Jquery,Mousedown,Mouseup,我在找一个自动拖放器。首先,当我单击屏幕上的任意位置时,获取坐标,然后拖放ID为ball的元素。使用jQuery或javascript 我编写了一个类似于我想要的脚本,但是当网站的客户端更新时,这个脚本被修补了。当我按1keycode 49键时,这个自动拖放 作用{ "严格使用",; var-mouseX=0; var-mouseY=0; var invName=; var定时器=0; document.body.addEventListener'mousemove',函数e{ mouseX=e

我在找一个自动拖放器。首先,当我单击屏幕上的任意位置时,获取坐标,然后拖放ID为ball的元素。使用jQuery或javascript

我编写了一个类似于我想要的脚本,但是当网站的客户端更新时,这个脚本被修补了。当我按1keycode 49键时,这个自动拖放

作用{ "严格使用",; var-mouseX=0; var-mouseY=0; var invName=; var定时器=0; document.body.addEventListener'mousemove',函数e{ mouseX=e.clientX; 穆西=e.clientY; }; $'.inventory box'.mousedown函数e{invName=e.currentTarget.id;}; 功能下降{ $+invName.trigger$.Event'mousedown',{button:0}; $'body'。触发$.Event'mouseup'{ 按钮:0, clientX:mouseX, 顾客:老鼠 }; 定时器=setTimeoutdrop,100; } window.addEventListener'keyup',函数e{ 如果e.keyCode==49&&!计时器{ invName=‘ball’; 滴 setTimeoutfunction{ clearTimeouttimer,计时器=0; }, 20; } }; }; 当我点击屏幕上的任何地方时,它会得到它的坐标,然后拖放一个ID为ball的元素

下面是一个非常简单的香草JavaScript方法,它将在单击时将ID为ball的元素定位在光标位置

球将跟随光标直到下一次单击,然后球将落在单击位置

constball=document.getElementById'ball'; const ball halfheight=Math.roundball.offsetHeight/2; const ballHalfWidth=Math.roundball.offsetWidth/2; 设dragState=false; //将球移到位置 函数moveBallTox,y{ ball.style.top=y-球半高+px'; ball.style.left=x-ballHalfWidth+‘px’; } //听“mousemove”并拖动球 函数dragListenerevt{ 常量{clientX,clientY}=evt; moveBallToclientX,clientY; }; //响应“单击”事件开始或完成拖动 window.addEventListener'click',evt=>{ 常量{clientX,clientY}=evt; moveBallToclientX,clientY; ball.classList.remove'hidden'; //手柄拖动 如果!dragState{ 窗口。添加了Listener'mousemove',dragListener; }否则{ 窗口。删除“mousemove”ventListener,dragListener; } dragState=!dragState; }; .跳水{ 位置:固定; 背景色:淡蓝色; 宽度:2em; 高度:2em; 边界半径:1em; } .隐藏{ 不透明度:0; } 单击任意位置 当我点击屏幕上的任何地方时,它会得到它的坐标,然后拖放一个ID为ball的元素

下面是一个非常简单的香草JavaScript方法,它将在单击时将ID为ball的元素定位在光标位置

球将跟随光标直到下一次单击,然后球将落在单击位置

constball=document.getElementById'ball'; const ball halfheight=Math.roundball.offsetHeight/2; const ballHalfWidth=Math.roundball.offsetWidth/2; 设dragState=false; //将球移到位置 函数moveBallTox,y{ ball.style.top=y-球半高+px'; ball.style.left=x-ballHalfWidth+‘px’; } //听“mousemove”并拖动球 函数dragListenerevt{ 常量{clientX,clientY}=evt; moveBallToclientX,clientY; }; //响应“单击”事件开始或完成拖动 window.addEventListener'click',evt=>{ 常量{clientX,clientY}=evt; moveBallToclientX,clientY; ball.classList.remove'hidden'; //手柄拖动 如果!dragState{ 窗口。添加了Listener'mousemove',dragListener; }否则{ 窗口。删除“mousemove”ventListener,dragListener; } dragState=!dragState; }; .跳水{ 位置:固定; 背景色:淡蓝色; 宽度:2em; 高度:2em; 边界半径:1em; } .隐藏{ 不透明度:0; } 单击任意位置
请修正你的代码缩进。为什么使用setTimeout?都是客户端代码?为什么您至少不能尝试让代码在堆栈上或JSFIDLE中运行,就像这张令人惊叹的问题海报所做的那样?这个代码应该在这个站点上运行->agma.io当我按1键时,它一直在落球,所以我使用setTimeout在按1键20毫秒后停止落球。请修复代码缩进。为什么使用setTimeout?都是客户端代码?为什么您至少不能尝试让代码在堆栈上或JSFIDLE中运行,就像这张令人惊叹的问题海报所做的那样?这个代码应该在这个站点->agma.io上运行。当我按1键时,它一直在落球,所以我使用setTimeout在按下1键20毫秒后停止落球。