码迷,mamicode.com
首页 > 其他好文 > 详细

拖拽克隆。

时间:2017-06-23 10:29:07      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:dev   sem   selector   wrap   order   lan   pac   use   cti   

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
body {
margin: 0;
}
#wrap {
margin: 50px auto;
position: relative;
border: 1px solid #000;
width: 600px;
height: 500px;
}
#div {
position: absolute;
left: 0;
top: 0;
width: 100px;
height: 100px;
background: red;
cursor: move;
}
</style>
</head>
<body>
<div id="wrap">
<div id="div">文字</div>
</div>
<script type="text/javascript">
(function(){
var div = document.querySelector(‘#div‘);
var maxX = div.offsetParent.clientWidth - div.offsetWidth;
var maxY = div.offsetParent.clientHeight - div.offsetHeight;
div.addEventListener(‘mousedown‘, function(e) {
e.preventDefault();
var start = {x: e.clientX,y: e.clientY};
var elOffset = {x: div.offsetLeft,y: div.offsetTop};
var newDiv = div.cloneNode(true);
newDiv.style.opacity = .5;
div.parentNode.appendChild(newDiv);
document.addEventListener(‘mousemove‘, move);
document.addEventListener(‘mouseup‘, end);
function move(e){
var dis = {x:e.clientX - start.x,y:e.clientY - start.y};
var x = dis.x + elOffset.x;
var y = dis.y + elOffset.y;
/* 左侧磁性吸附 */
x = x<0?0:(x>maxX?maxX:x);

y = y<0?0:(y>maxY?maxY:y);
console.log(x);
newDiv.style.left = x + "px";
newDiv.style.top = y + "px";
}
function end(e){
document.removeEventListener(‘mousemove‘, move);
document.removeEventListener(‘mouseup‘, end);
div.style.left = newDiv.style.left;
div.style.top = newDiv.style.top;
div.parentNode.removeChild(newDiv);
}
});
})();
</script>
</body>
</html>

拖拽克隆。

标签:dev   sem   selector   wrap   order   lan   pac   use   cti   

原文地址:http://www.cnblogs.com/catEatBird/p/7068207.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!