最新demo演示
http://www.xlone.net/File/upload/default.html
小龙的任务已经完成
function GetPoint(obj,_jpx,_jpy){
var GroupBox=document.getElementById(_oSysVar.GroupName);
var _w=obj.clientWidth;
var _h=obj.clientHeight;
var _left=obj.style.pixelLeft;
var _top=obj.style.pixelTop;
var _epx=(arguments.length<5)?event.x-GroupBox.offsetLeft:arguments[3];
var _epy=(arguments.length<5)?event.y-GroupBox.offsetTop:arguments[4];
var _ajpx=((_jpx>_epx)?_epx:_jpx);
var _ajpy=((_ajpx==_epx)?_epy:_jpy);
var _tspx=((_jpx<_left)?_left:((_jpx>_left+_w)?_left+_w:_jpx));
var _tspy=((_jpy<_top)?_top:((_jpy>_top+_h)?_top+_h:_jpy));
if(_jpx==_epx||_jpy==_epy)
{
if(_jpx==_epx)
{
_y=_tspy;
_x=_jpx;
}
else if(_jpy==_epy)
{
_x=_tspx;
_y=_jpy;
}
}
else
{
var _aepx=((_jpx>_epx)?_jpx:_epx);
var _aepy=((_aepx==_jpx)?_jpy:_epy);
var _scale = (_aepx-_ajpx)/(_aepy-_ajpy);
var _x=(_aepx-(_aepy-_tspy)*_scale).formatNumber(0);
var _y=(_aepy-(_aepx-_tspx)/_scale).formatNumber(0);
if(_y<_top||_y>(_top+_h))_y=_tspy;
if(_x<_left||_x>(_left+_w))_x=_tspx;
}
return ([_x,_y]);
}
function GetContainer(_jobj,_eobj,_jpx,_jpy){
var GroupBox=document.getElementById(_oSysVar.GroupName);
var _epx=(arguments.length<6)?event.x-GroupBox.offsetLeft:arguments[3];
var _epy=(arguments.length<6)?event.y-GroupBox.offsetTop:arguments[4];
_point1 = GetPoint(_jobj,_epx,_epy,_jpx,_jpy);
_point2 = GetPoint(_eobj,_jpx,_jpy,_epx,_epy);
return ([_jobj,_point1,_eobj,_point2]);
}
function GetPoint(obj,_jpx,_jpy)
{
var _w=obj.style.pixelWidth;
var _h=obj.style.pixelHeight;
var _left=obj.style.pixelLeft;
var _top=obj.style.pixelTop;
var _epx=(arguments.length<5)?event.x:arguments[3];
var _epy=(arguments.length<5)?event.y:arguments[4];
var _ajpx=((_jpx>_epx)?_epx:_jpx);
var _ajpy=((_ajpx==_epx)?_epy:_jpy);
var _tspx=((_jpx<_left)?_left:((_jpx>_left+_w)?_left+_w:_jpx));
var _tspy=((_jpy<_top)?_top:((_jpy>_top+_h)?_top+_h:_jpy));
if(_jpx==_epx||_jpy==_epy)
{
if(_jpx==_epx)
{
_y=_tspy;
_x=_jpx;
}
else if(_jpy==_epy)
{
_x=_tspx;
_y=_jpy;
}
}
else
{
var _aepx=((_jpx>_epx)?_jpx:_epx);
var _aepy=((_aepx==_jpx)?_jpy:_epy);
var _scale = (_aepx-_ajpx)/(_aepy-_ajpy);
var _x=(_aepx-(_aepy-_tspy)*_scale).formatNumber(5);
var _y=(_aepy-(_aepx-_tspx)/_scale).formatNumber(5);
if(_y<_top||_y>(_top+_h))_y=_tspy;
if(_x<_left||_x>(_left+_w))_x=_tspx;
}
return ([_x,_y]);
}
GetPoint(obj,_jpx,_jpy)
目标容器 obj (必选)
起点坐标 _jpx,_jpy (必选)
终点坐标 _epx,_epy (可选)
返回值为交点坐标数组[_x,_y]
Function demo URL:
http://www.xlone.net/file/upload/vmlline.html
路径算法终于搞定了 汗啊~~
var _w=div2.style.pixelWidth; //目标容器宽度
var _h=div2.style.pixelHeight; //目标容器高度
var x0=div2.style.pixelLeft; //容器左坐标
var y0=div2.style.pixelTop; //容器上坐标
var _x=x0+_w/2; //容器中心x轴坐标
var _y=y0+_h/2; //容器中心y轴坐标
var x1=event.x; //终点x轴坐标
var y1=event.y; //终点y轴坐标
var x2=((xx>x1)?x1:xx); //计算起点x轴坐标
var y2=((x2==x1)?y1:yy); //计算起点y轴坐标
var x3=((xx<x0)?x0:((xx>x0+_w)?x0+_w:xx)); //交点终点x轴坐标
var y3=((yy<y0)?y0:((yy>y0+_h)?y0+_h:yy)); //交点终点y轴坐标
var x4=((xx>x1)?xx:x1); //计算终点x轴坐标
var y4=((x4==xx)?yy:y1); //计算终点y轴坐标
b=(x4-x2)/(y4-y2);
x5=(x4-(y4-y3)*b).format(0);
y5=(y4-(x4-x3)/b).format(0);
if(y5<y0||y5>(y0+_h))y5=y3;
if(x5<x0||x5>(x0+_w))x5=x3;
//交点坐标即为(x5,y5)

工作流分离界面

感谢宝玉借我一块宝地 龙堂今天开张~~
一直没能踏实的做出点什么 在网络中混了这么久
回头去看 感觉更多的是失落和空虚
振作吧~ 努力~