基于angular实现物体的拖拽
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>基于angular实现物体的拖拽</title>
<script src="angular.js"></script>
<style>
#box{
width: 100px;
height: 100px;
background-color: rgb(77, 250, 77);
}
</style>
</head>
<body ng-app="myApp">
<div ng-controller="ctl">
<div id="box" my-drag></div>
</div>
</body>
</html>
<script>
var myApp = angular.module("myApp",[]);
myApp.directive("myDrag",function(){
return function($scope,$ele,attr){
$ele.css({
"position":"relative",
"left":"0px",
"top":"0px",
});
$ele.on("mousedown",function(e){
// 鼠标按下时距离页面边缘的距离
var pageOriginX = e.pageX;
var pageOriginY = e.pageY;
// 鼠标按下时元素的相对位置
var leftOrigin = parseInt($ele.css("left"));
var topOrigin = parseInt($ele.css("top"));
document.onmousemove = function(e){
$ele.css({
"left":e.pageX - pageOriginX + leftOrigin +"px",
"top":e.pageY - pageOriginY + topOrigin + "px",
});
}
});
$ele.on("mouseup",function(){
document.onmousemove = null;
});
}
}).controller("ctl",function(){});
</script>