拖放脚本只工作一次,但停止工作[没有jQuery]
Drag and drop script works only once but stops working [No jQuery]
当我遇到错误时,我正在制作自己的灵活的javascript DnD脚本。div第一次移动的很好,但是其余的时候,它把偏移量弄乱了。我知道大家可能会说什么;"你为什么不使用库呢?"。原因是有我自己设计的脚本更容易编辑和理解。可能有一种更有效的方法来做到这一点,但是下面是代码:
document.onmousemove = mouseCoords;
var x = 0;
var y = 0;
var cl1= false;
var time1= true;
var divid;
var offs1;
var offs2;
function mouseCoords(e) {
x = e.x
y = e.y
if(cl1 === true){
document.getElementById(divid).style.top= y-offs1+"px";
document.getElementById(divid).style.left= x-offs2+"px";
}
}
var drag1 = function(i, cas) {
divid= i
if(time1=== true){
cl1= true
time1= false
}else{
cl1= false
time1= true
}
switch(cas){
case 0:
offs1 = 0;
offs2 = 0;
break;
case 1:
offs1 = y;
offs2 = x;
break;
}
}
<div id="1" onmousedown="drag1(1, 1);" onmouseup="drag1(1, 0);" style="background-color: yellow; width: 500px; height: 300px; position: fixed;"></div>
第一次没有打嗝,但所有的过程中,偏移量不够接近鼠标,几乎无法无缝地工作。我如何使脚本工作,就像它的第一次,每次?(它在代码片段中没有显示太多)
我添加了考虑当前div坐标。它似乎更稳定地工作:
document.onmousemove = mouseCoords;
var x = 0;
var y = 0;
var cl1= false;
var divid;
var offs1;
var offs2;
var _top;
var _left;
function mouseCoords(e) {
x = e.x
y = e.y
if(cl1 === true){
document.getElementById(divid).style.top = _top + (y-offs1) + 'px';
document.getElementById(divid).style.left = _left + (x-offs2) + 'px';
}
}
var drag1 = function(i, cas) {
divid= i
switch(cas){
case 0:
offs1 = 0;
offs2 = 0;
cl1= false;
break;
case 1:
var rect = document.getElementById(divid).getBoundingClientRect();
_left = rect.left;
_top = rect.top;
offs1 = y;
offs2 = x;
cl1= true;
break;
}
}
<div id="1" onmousedown="drag1(1, 1);" onmouseup="drag1(1, 0);" style="background-color: yellow; width: 500px; height: 300px; position: fixed;"></div>
相关文章:
- jQuery UI自动完成突然停止工作
- JavaScript打印功能使日历停止工作
- 下拉列表在使用z索引放置在前面后停止工作
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- 注入工厂时,Angular停止工作
- React Native DeviceEventEmitter键盘WillShow停止工作
- JavaScript在更改css时停止工作
- Chrome地理定位在更新后停止工作
- 重新启动jquery脚本后,角度停止工作
- twitter引导崩溃在第一次点击后停止工作
- 更新Wordpress和我的平滑滚动停止工作
- Hammer.js过了一段时间就停止工作了
- 应用程序在“关闭”之后停止工作(控制台中没有错误);咕哝的构造”;
- JQuery停止工作,没有任何错误消息
- 我写的JQuery代码停止工作了,有没有什么错误的I'我忽略了
- 幻灯片停止工作控制台显示没有相关错误?但是这个无关
- 拖放脚本只工作一次,但停止工作[没有jQuery]
- 为什么在node.js中catch块没有触发并且应用程序停止工作?
- Jquery停止函数没有工作正常
- jQuery UI表单停止工作,没有已知的变化