Extjs 拖拽实验例子
来源:互联网 发布:广联达软件电气 编辑:程序博客网 时间:2024/06/06 05:31
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>拖拽实验</title>
<!--基本引用文件-->
<link rel="Stylesheet" type="text/css" href="../resources/css/ext-all.css" />
<script type="text/javascript" src="../adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../ext-all-debug.js"></script>
<script type="text/javascript" src="../build/locale/ext-lang-zh_CN.js"></script>
<!--基本样式-->
<style type="text/css">
body{
font-size:12px;margin: 10px;
}
.block {
clear:left;
margin-top:50px;
border: solid 1px #000;
height:160px;
padding:20px 0 0 20px;
}
.item {
border: 1px #000 solid;
margin-right:10px;
width: 60px;
height: 40px;
text-align:center;
padding-top:20px;
color:White;
float:left;
cursor:pointer;
}
.BorderOver{
border:dashed 2px #00f;
}
</style>
</head>
<body>
<script type="text/javascript">
Ext.onReady(function() {
var proxy = new Ext.dd.DDProxy("proxy");//这一句就可以建立一个随便拖的东东,神奇吧
//(ExtJs的拖动组件分二大类,DDProxy就是要拖动的东西,而DDTarget就是拖动后可以扔进去的目标容器区)
//以下建立了三个拖动源DropSource(继承自DDProxy可以查看官方文档),并标明gruop为dd
var proxy_red = new Ext.dd.DragSource('proxy_red', {group:'dd'});
var proxy_green = new Ext.dd.DragSource('proxy_green', { group:'dd' });
var proxy_black = new Ext.dd.DragSource('proxy_black', { group:'dd' });
//拖动完成的事件
proxy_red.afterDragDrop = function(target, e, id) {
var destEl = Ext.get(id);
var srcEl = Ext.get(this.getEl());
if (destEl.dom.id == "target2") {
if (srcEl.dom.id != "proxy_red") {
destEl.dom.style.border = "solid #000 1px";
alert("此区域仅接受red(红色)色块!");
return false;
}
}
var sColor = srcEl.dom.id.split('_')[1]; //得取拖动源id的后面一部分,即proxy_red后面的red
//destEl.dom.style.backgroundColor = sColor; //设置目标id的背景色
//destEl.dom.style.border = "solid #000 1px";
var beginX = destEl.getX(); //目标区块的X轴初始坐标
var beginY = destEl.getY(); //目标区块的Y轴初始坐标
var eXY = e.getXY();
var dragtargetX = eXY[0];
var dragtargetY = eXY[1];
var X = dragtargetX - beginX;
var Y = dragtargetY - beginY;
alert("x:"+X);alert("y:"+Y);
var TextField35378 = new Ext.form.TextField({id:"TextField35378",
labelSeparator:":" ,labelStyle:"text-align:right",
inputType: 'text', name: '姓名',