JavaScript 拖动布局dragFix
[08-08 00:41:50] 来源:http://www.xuehuiba.com Javascript教程 阅读:8568次
概要: _dragFix.Temp = _dragFix.Obj.cloneNode(false); //临时插入块 _dragFix.Obj.parentNode.insertBefore(_dragFix.Temp,_dragFix.Obj); _dragFix.Temp.id = _dragFix.Tempid; with(_dragFix.Obj.style) { position = "absolute"; zIndex = 1000; } with(_dragFix.Temp.style) { width = "auto"; height = _dragFix.Obj.offsetHeight - 12 + "px"; border = "2px dotted red"; margin = "0 0 8px 0&quo
JavaScript 拖动布局dragFix,标签:javascript视频教程,javascript教程下载,http://www.xuehuiba.com
_dragFix.Temp = _dragFix.Obj.cloneNode(false); //临时插入块
_dragFix.Obj.parentNode.insertBefore(_dragFix.Temp,_dragFix.Obj);
_dragFix.Temp.id = _dragFix.Tempid;
with(_dragFix.Obj.style)
{
position = "absolute";
zIndex = 1000;
}
with(_dragFix.Temp.style)
{
width = "auto";
height = _dragFix.Obj.offsetHeight - 12 + "px";
border = "2px dotted red";
margin = "0 0 8px 0";
}
},
drag:function(e)
{
if(!_dragFix.Ctrl || !_dragFix.Sign || _dragFix.Obj==null) return;
if(!e) e = window.event;
var currenX = getMouseX(e); //鼠标当前X坐标
var currenY = getMouseY(e); //鼠标当前Y坐标
//var currenObjX = currenX;
//var currenObjY = currenY;
var currenObjX = getRealLeft(_dragFix.Obj);
var currenObjY = getRealTop(_dragFix.Obj);
//window.status = currenObjX + "-" +currenObjY;
if(_dragFix.Range != "in")
{
_dragFix.Obj.style.left = (_dragFix.Obj.initoffsetL + currenX - _dragFix.Obj.initMouseX) + "px";
for(var i = 1; i < _dragFix.PositionsX.length; i++)
{
if(currenObjX > _dragFix.PositionsX[i]) _dragFix.Row = _dragFix.Rows[i];
else
{
_dragFix.Row = _dragFix.Rows[i-1];
break;
}
}
} //如果拖动层设置为只在当前列拖,则保持横坐标(X坐标)不变
else _dragFix.Row = _dragFix.Obj.parentNode.id;
//_dragFix.Obj.style.width = $(_dragFix.Row).offsetWidth;
//_dragFix.Temp.style.height = _dragFix.Obj.offsetHeight;
//window.status = "所在列:"+_dragFix.Row;
_dragFix.Obj.style.top = (_dragFix.Obj.initoffsetY + currenY - _dragFix.Obj.initMouseY) + "px";
var finded = false;
var dragC = $(_dragFix.Row).childNodes;
for(var i = 0; i < dragC.length; i++)
{
var o = dragC[i];
var sonT = getRealTop(o);
var sonH = o.offsetHeight;
var tH = sonT + parseInt(sonH/2);
var tH2 = sonT + sonH;
if(o.getAttribute("drag"))
{
if(currenObjY > sonT && currenObjY < tH)
{
$(_dragFix.Row).insertBefore(_dragFix.Temp,o);
break;
}
else if(currenObjY > tH && currenObjY < tH2 + 8)
{
if(o.nextSibling) $(_dragFix.Row).insertBefore(_dragFix.Temp,o.nextSibling);
else $(_dragFix.Row).appendChild(_dragFix.Temp);
break;
}
// else if()
}
}
// if(!finded) $(_dragFix.Row).appendChild(_dragFix.Temp);
return;
},
end:function()
{
if(!_dragFix.Ctrl || !_dragFix.Sign) return;
_dragFix.Sign = false;
_dragFix.timer = _dragFix.repos(150,15);//放开时回到新的位置
window.status = "拖动结束";
},
repos:function(aa,ab)
{
var tl=getRealLeft(_dragFix.Obj);
var tt=getRealTop(_dragFix.Obj);
var kl=(tl-getRealLeft(_dragFix.Temp))/ab;
var kt=(tt-getRealTop(_dragFix.Temp))/ab;
return setInterval(function(){
if(ab<1)
{
clearInterval(_dragFix.timer);
_dragFix.Temp = _dragFix.Obj.cloneNode(false); //临时插入块
_dragFix.Obj.parentNode.insertBefore(_dragFix.Temp,_dragFix.Obj);
_dragFix.Temp.id = _dragFix.Tempid;
with(_dragFix.Obj.style)
{
position = "absolute";
zIndex = 1000;
}
with(_dragFix.Temp.style)
{
width = "auto";
height = _dragFix.Obj.offsetHeight - 12 + "px";
border = "2px dotted red";
margin = "0 0 8px 0";
}
},
drag:function(e)
{
if(!_dragFix.Ctrl || !_dragFix.Sign || _dragFix.Obj==null) return;
if(!e) e = window.event;
var currenX = getMouseX(e); //鼠标当前X坐标
var currenY = getMouseY(e); //鼠标当前Y坐标
//var currenObjX = currenX;
//var currenObjY = currenY;
var currenObjX = getRealLeft(_dragFix.Obj);
var currenObjY = getRealTop(_dragFix.Obj);
//window.status = currenObjX + "-" +currenObjY;
if(_dragFix.Range != "in")
{
_dragFix.Obj.style.left = (_dragFix.Obj.initoffsetL + currenX - _dragFix.Obj.initMouseX) + "px";
for(var i = 1; i < _dragFix.PositionsX.length; i++)
{
if(currenObjX > _dragFix.PositionsX[i]) _dragFix.Row = _dragFix.Rows[i];
else
{
_dragFix.Row = _dragFix.Rows[i-1];
break;
}
}
} //如果拖动层设置为只在当前列拖,则保持横坐标(X坐标)不变
else _dragFix.Row = _dragFix.Obj.parentNode.id;
//_dragFix.Obj.style.width = $(_dragFix.Row).offsetWidth;
//_dragFix.Temp.style.height = _dragFix.Obj.offsetHeight;
//window.status = "所在列:"+_dragFix.Row;
_dragFix.Obj.style.top = (_dragFix.Obj.initoffsetY + currenY - _dragFix.Obj.initMouseY) + "px";
var finded = false;
var dragC = $(_dragFix.Row).childNodes;
for(var i = 0; i < dragC.length; i++)
{
var o = dragC[i];
var sonT = getRealTop(o);
var sonH = o.offsetHeight;
var tH = sonT + parseInt(sonH/2);
var tH2 = sonT + sonH;
if(o.getAttribute("drag"))
{
if(currenObjY > sonT && currenObjY < tH)
{
$(_dragFix.Row).insertBefore(_dragFix.Temp,o);
break;
}
else if(currenObjY > tH && currenObjY < tH2 + 8)
{
if(o.nextSibling) $(_dragFix.Row).insertBefore(_dragFix.Temp,o.nextSibling);
else $(_dragFix.Row).appendChild(_dragFix.Temp);
break;
}
// else if()
}
}
// if(!finded) $(_dragFix.Row).appendChild(_dragFix.Temp);
return;
},
end:function()
{
if(!_dragFix.Ctrl || !_dragFix.Sign) return;
_dragFix.Sign = false;
_dragFix.timer = _dragFix.repos(150,15);//放开时回到新的位置
window.status = "拖动结束";
},
repos:function(aa,ab)
{
var tl=getRealLeft(_dragFix.Obj);
var tt=getRealTop(_dragFix.Obj);
var kl=(tl-getRealLeft(_dragFix.Temp))/ab;
var kt=(tt-getRealTop(_dragFix.Temp))/ab;
return setInterval(function(){
if(ab<1)
{
clearInterval(_dragFix.timer);
Tag:Javascript教程,javascript视频教程,javascript教程下载,电脑知识学习 - 网页制作 - Javascript教程
最新更新