【发布时间】:2018-06-11 15:41:33
【问题描述】:
我正在使用可拖动对象的平板电脑环境。 拖放有效,甚至可以一次拖动多个对象。
参考文献是:
这是我的代码当前版本的样子:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta
name='viewport'
content='width=50px, initial-scale=1.0, maximum-scale=1.0, user-scalable=0,'
/>
<!--
Refernces:
* https://wiki.selfhtml.org/wiki/JavaScript/Tutorials/Drag_and_Drop
* https://mobiforge.com/design-development/touch-friendly-drag-and-drop
-->
<style>
#container {
width: 200px;
height: 200px;
position: relative;
background: yellow;
top: 100px
}
main1 {
position: relative;
}
div1 {
position: absolute;
top: 0px;
left: 100px;
height: 72px;
width: 72px;
background: red;
border: 0px solid #666;
margin: 0;
padding: 0;
}
</style>
<title>Clean up</title>
</head>
<body>
<div id ="container">
</div>
<main1 id="main1">
<div1 class="draggable" id="d1-0""></div1>
</main1>
<script>
var nodeList = document.getElementsByClassName('draggable');
for(var i=0;i<nodeList.length;i++) {
var obj = nodeList[i];
obj.addEventListener('touchmove', function(event) {
var touch = event.targetTouches[0];
// Place element where the finger is
event.target.style.left = touch.pageX + 'px';
event.target.style.top = touch.pageY + 'px';
event.preventDefault();
}, false);
}
</script>
</body>
</html>
这个想法是,红色框 (div1) 可以在屏幕上随处移动、拖放。但是当它进入黄色画布时,它需要移动到它的初始起始位置。 (这个想法是“清理”并“将对象移回它们原来的位置”。)
【问题讨论】:
-
您希望
red div在进入yellow div或松开鼠标后立即捕捉到特定位置? -
感谢 Alex,您的快速回复!当红色 div 进入黄色 div 并释放鼠标时。
标签: javascript html drag-and-drop