You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.1 KiB
37 lines
1.1 KiB
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Snap Draggable - jQuery EasyUI Demo</title>
|
|
<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
|
|
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
|
|
<link rel="stylesheet" type="text/css" href="../demo.css">
|
|
<script type="text/javascript" src="../../jquery.min.js"></script>
|
|
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
|
|
</head>
|
|
<body>
|
|
<h2>Snap Draggable</h2>
|
|
<p>This sample shows how to snap a draggable object to a 20x20 grid.</p>
|
|
<div style="margin:20px 0;"></div>
|
|
<div class="easyui-panel" style="position:relative;overflow:hidden;width:500px;height:300px">
|
|
<div class="easyui-draggable" data-options="onDrag:onDrag" style="width:100px;height:100px;background:#fafafa;border:1px solid #ccc;">
|
|
</div>
|
|
</div>
|
|
<script>
|
|
function onDrag(e){
|
|
var d = e.data;
|
|
d.left = repair(d.left);
|
|
d.top = repair(d.top);
|
|
|
|
function repair(v){
|
|
var r = parseInt(v/20)*20;
|
|
if (Math.abs(v % 20) > 10){
|
|
r += v > 0 ? 20 : -20;
|
|
}
|
|
return r;
|
|
}
|
|
}
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|