如何使鼠标火在任何地方
How to make mouseup fire anyehere?
我有一个相对实用的拖放脚本。但是,我希望能够在屏幕上的任何地方触发鼠标up。是否有一种方法可以在窗口外或当前元素外触发鼠标up ?我知道这是可能的,我见过其他类似的问题。我想在香草Javascript中找到一种方法来检测这样的鼠标。
document.onmousemove = mouseCoords;
var x = 0;
var y = 0;
var cl1= false;
var divid;
var offs1;
var offs2;
var topPos;
var leftPos;
function mouseCoords(e) {
x = e.x
y = e.y
if(cl1 === true){
document.getElementById(divid).style.top = topPos + (y-offs1) + 'px';
document.getElementById(divid).style.left = leftPos + (x-offs2) + 'px';
}
}
var drag = function(i, cas) {
divid= i
switch(cas){
case 1:
var rect = document.getElementById(divid).getBoundingClientRect();
leftPos = rect.left;
topPos = rect.top;
offs1 = y;
offs2 = x;
cl1= true;
break;
case 0:
offs1 = 0;
offs2 = 0;
cl1= false;
break;
}
}
#block{
width: 100px; z-index: 20; height: 50px; background-color: blue; position: fixed; user-select: none; -webkit-user-select: none;
}
.drag{
width: 200px; height: 100px; background-color: red; position: fixed;
}
<div id="block">mouseup doesn't trigger over me!</div>
<div id="1" class="drag" onmousedown="drag(1, 1)" onmouseup="drag(1, 0)"></div>
使用
document.addEventListener("mouseup", drag(null, 0));
对于mouseup
,
和mousedown
的代码
document.addEventListener("mousedown", drag(null, 1));
基本上,document.addEventListener
适用于整个窗口。"mouseup"
告诉脚本事件是一个mouseup
,最后一位是要执行的函数(drag(1,0))
相关文章:
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- 是否有任何可能的原因使我应该指定类型=“”;按钮“;用于我的按钮元素
- 如何正确地使这个js片段内容不可知
- Angular使服务可以从任何地方访问
- 如何创建php函数或任何脚本/jquery Javascript,使我能够获取与复选框关联的值并添加它们
- Jquery自动完成:如果没有选择任何项目,则使tab键选择第一个项目
- 使<选择>选项”;点击“;自动地
- 如何使绑定提交始终有效?它'It’他不时地工作
- 如何使用 d3 过渡使圆形一个接一个地出现
- 如果未输入任何内容,则使 JavaScript 按钮不执行任何操作
- javascript是否有一个选项可以使句点与任何字符匹配,包括换行符
- 有没有任何方法可以使<选择>转到url
- Javascript使函数一个接一个地执行
- asp validationExpression中用于验证表达式的代码,使我们能够避免单词末尾的任何let(d)
- 有没有任何方法可以使这个名称生成循环运行最短的秒数
- 如何使网页上的任何地方可点击并导航到地址,而无需使整个页面成为链接
- 当在模板中使用未声明的指令时,是否有任何方法可以使angular警告我
- 如何在开始拖动任何对象时使iframe跟随鼠标光标
- 任何方法,使一个触发器或按钮,让用户按下和运行,而不是去脚本编辑器
- 当单击页面上的其他任何地方时,使下拉菜单返回