首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

一段JS有关问题,紧急

2012-01-07 
一段JS问题,紧急,在线等我有一段JS代码可以实现一个DIV的拖动,但是代码指定ID为Floater的对象才可以拖动,

一段JS问题,紧急,在线等
我有一段JS代码可以实现一个DIV的拖动,但是代码指定ID为Floater的对象才可以拖动,我想要改成所有图片都可以拖动,怎么样修改.
大家帮我改一下,100分送,直接能运行的话再加100分.
self.onError=null;
currentX   =   currentY   =   0;
whichIt   =   null;
lastScrollX   =   0;   lastScrollY   =   0;
NS   =   (document.layers)   ?   1   :   0;
IE   =   (document.all)   ?   1:   0;
<!--   STALKER   CODE   -->
function   heartBeat()  
{
if(IE)  
{
diffY   =   document.body.scrollTop;  
diffX   =   document.body.scrollLeft;  
}
if(NS)  
{
diffY   =   self.pageYOffset;  
diffX   =   self.pageXOffset;  
}
if(diffY   !=   lastScrollY)  
{
percent   =   .1   *   (diffY   -   lastScrollY);
if(percent   >   0)   percent   =   Math.ceil(percent);
else   percent   =   Math.floor(percent);
if(IE)   document.all.floater.style.pixelTop   +=   percent;
if(NS)   document.floater.top   +=   percent;  
lastScrollY   =   lastScrollY   +   percent;
}
if(diffX   !=   lastScrollX)  
{
percent   =   .1   *   (diffX   -   lastScrollX);
if(percent   >   0)   percent   =   Math.ceil(percent);
else   percent   =   Math.floor(percent);
if(IE)   document.all.floater.style.pixelLeft   +=   percent;
if(NS)   document.floater.left   +=   percent;
lastScrollX   =   lastScrollX   +   percent;
}
}
<!--   /STALKER   CODE   -->
<!--   DRAG   DROP   CODE   -->
function   checkFocus(x,y)  
{  
stalkerx   =   document.floater.pageX;
stalkery   =   document.floater.pageY;
stalkerwidth   =   document.floater.clip.width;
stalkerheight   =   document.floater.clip.height;
if(   (x   >   stalkerx   &&   x   <   (stalkerx+stalkerwidth))   &&   (y   >   stalkery   &&   y   <   (stalkery+stalkerheight)))  
return   true;
else  
return   false;
}
function   grabIt(e)  
{
if(IE)  
{
whichIt   =   event.srcElement;
while   (whichIt.id.indexOf( "floater ")   ==   -1)  
{
whichIt   =   whichIt.parentElement;
if   (whichIt   ==   null)   {   return   true;   }
}
whichIt.style.pixelLeft   =   whichIt.offsetLeft;
whichIt.style.pixelTop   =   whichIt.offsetTop;
currentX   =   (event.clientX   +   document.body.scrollLeft);
currentY   =   (event.clientY   +   document.body.scrollTop);      
}  
else  
{  
window.captureEvents(Event.MOUSEMOVE);
if(checkFocus   (e.pageX,e.pageY))   {  
whichIt   =   document.floater;
StalkerTouchedX   =   e.pageX-document.floater.pageX;
StalkerTouchedY   =   e.pageY-document.floater.pageY;
}  
}
return   true;
}
function   moveIt(e)  
{
if   (whichIt   ==   null)   {   return   false;   }


if(IE)  
{
newX   =   (event.clientX   +   document.body.scrollLeft);
newY   =   (event.clientY   +   document.body.scrollTop);
distanceX   =   (newX   -   currentX);         distanceY   =   (newY   -   currentY);
currentX   =   newX;         currentY   =   newY;
whichIt.style.pixelLeft   +=   distanceX;
whichIt.style.pixelTop   +=   distanceY;
if(whichIt.style.pixelTop   <   document.body.scrollTop)   whichIt.style.pixelTop   =   document.body.scrollTop;
if(whichIt.style.pixelLeft   <   document.body.scrollLeft)   whichIt.style.pixelLeft   =   document.body.scrollLeft;
if(whichIt.style.pixelLeft   >   document.body.offsetWidth   -   document.body.scrollLeft   -   whichIt.style.pixelWidth   -   20)   whichIt.style.pixelLeft   =   document.body.offsetWidth   -   whichIt.style.pixelWidth   -   20;
if(whichIt.style.pixelTop   >   document.body.offsetHeight   +   document.body.scrollTop   -   whichIt.style.pixelHeight   -   5)   whichIt.style.pixelTop   =   document.body.offsetHeight   +   document.body.scrollTop   -   whichIt.style.pixelHeight   -   5;
event.returnValue   =   false;
}  
else  
{  
whichIt.moveTo(e.pageX-StalkerTouchedX,e.pageY-StalkerTouchedY);
if(whichIt.left   <   0+self.pageXOffset)   whichIt.left   =   0+self.pageXOffset;
if(whichIt.top   <   0+self.pageYOffset)   whichIt.top   =   0+self.pageYOffset;
if(   (whichIt.left   +   whichIt.clip.width)   > =   (window.innerWidth+self.pageXOffset-17))   whichIt.left   =   ((window.innerWidth+self.pageXOffset)-whichIt.clip.width)-17;
if(   (whichIt.top   +   whichIt.clip.height)   > =   (window.innerHeight+self.pageYOffset-17))   whichIt.top   =   ((window.innerHeight+self.pageYOffset)-whichIt.clip.height)-17;
return   false;
}
return   false;
}
function   dropIt()  
{
whichIt   =   null;
if(NS)   window.releaseEvents   (Event.MOUSEMOVE);
return   true;
}
<!--   DRAG   DROP   CODE   -->
if(NS)  
{
window.captureEvents(Event.MOUSEUP|Event.MOUSEDOWN);
window.onmousedown   =   grabIt;
window.onmousemove   =   moveIt;
window.onmouseup   =   dropIt;
}
if(IE)  
{
document.onmousedown   =   grabIt;
document.onmousemove   =   moveIt;
document.onmouseup   =   dropIt;
}
if(NS   ||   IE)   action   =   window.setInterval( "heartBeat() ",1);

[解决办法]
我帮顶
[解决办法]
mark,帮顶
[解决办法]
拖拽的代码很多,为什么要用这个,比如google的拖拽
,yui等等都挺好的,可以下一个看看
[解决办法]
mark
[解决办法]
不會..mark..
[解决办法]
你把对象抽象出来就行了


穿一个参数 object
[解决办法]
var objDel;
var objEdit;
function FillObject()
{
objDel=event.srcElement;
objEdit=event.srcElement;
}
function Notice()
{
if(objDel==null)
{
return;
}
else if(objDel.id.substring(0,3)== 'img '||objDel.id.substring(0,5)== 'Civil ')
{

if(confirm( "您是否要删除 "))
{
var res=Index.DeleteMap(objDel.id);
alert(res.value);
window.location.href= "Index.aspx ";
}
else
{
return;
}
}
else
{
return false;
}
}

function Edit()
{
if(objEdit==null)
{
return;
}
else if(objEdit.id.substring(0,3)== 'img '||objEdit.id.substring(0,5)== 'Civil ')
{
window.open( "Edit.aspx?StrId= "+objEdit.id, "newWin ", "scrollbars=no,width=776,height=600 ");
}
else
{
return;
}
}
</script>
<script language= "javascript ">
Number.prototype.NaN0=function(){return isNaN(this)?0:this;}
var iMouseDown=false;
var dragObject=null;
var curTarget =null;

function makeDragable(item)
{
if(!item) return;
item.onmousedown=function(ev)
{
dragObject=this;
mouseOffset=getMouseOffset(this,ev);
return false;
}
}
function getMouseOffset(target,ev)
{
ev=ev||window.event;
var docPos=getPosition(target);
var mousePos=mouseCoords(ev);
return {x:mousePos.x-docPos.x,y:mousePos.y-docPos.y};
}
function getPosition(e)
{
var left=0;
var top=0;
while(e.offsetParent)
{
left+=e.offsetLeft+(e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
top+=e.offsetTop+(e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
e=e.offsetParent;
}
left+=e.offsetLeft+(e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
top+=e.offsetTop+(e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
return {x:left,y:top};
}
function mouseCoords(ev)
{
if(ev.pageX||ev.pageY)
{
return {x:ev.pageX,y:ev.pageY};
}
return {x:ev.clientX+document.body.scrollLeft-document.body.clientLeft,y:ev.clientY+document.body.scrollTop-document.body.clientTop};
}
function mouseDown(ev)
{
ev=ev||window.event;
var target=ev.target||ev.srcElement;
//获得并显示对象的名称
document.getElementById( 'OpObject ').innerText=target.name;
if(target.onmousedown||target.getAttribute( 'DragObj '))
{
return false;
}
}
function mouseUp(ev)
{
if(dragObject)
{
var lastx=dragObject.style.left;
var lasty=dragObject.style.top;
lastx=lastx.replace( 'px ', ' ');
lasty=lasty.replace( 'px ', ' ');
var objId=dragObject.id.toString()
if(objId.substring(0,3)== 'img ')
{
objId=objId.substring(3,objId.length);
//onmouseup事件触发时说明鼠标已经松开,所以设置down变量值为false
var r = Index.SaveArmyPos(objId,lastx,lasty)
}
else if(objId.substring(0,5)== 'Civil ')
{
objId=objId.substring(5,objId.length);
var r = Index.SaveCivilPos(objId,lastx,lasty)


}
}
dragObject = null;
iMouseDown = false;
}
function mouseMove(ev)
{
ev=ev||window.event;
var target = ev.target || ev.srcElement;
var mousePos = mouseCoords(ev);
if(dragObject)
{
if(dragObject.style)
{
if(ev.clientX <=290||ev.clientY <=85||ev.clientX> 990||ev.clientY> 650)
{
dragObject.style.position= 'absolute ';
dragObject.style.left=dragObject.style.left;
dragObject.style.top= dragObject.style.top;
}
else
{
document.getElementById( 'PosX ').innerText=mousePos.x - mouseOffset.x;
document.getElementById( 'PosY ').innerText=mousePos.y - mouseOffset.y;
dragObject.style.position= 'absolute ';
/*显示对象信息*/
dragObject.style.left=mousePos.x - mouseOffset.x;
dragObject.style.top= mousePos.y - mouseOffset.y;
}
}
}
lMouseState = iMouseDown;
if(curTarget || dragObject) return false;
}
document.onmousemove = mouseMove;
document.onmousedown = mouseDown;
document.onmouseup = mouseUp;
window.onload=function()
{
var arrImage=document.getElementsByTagName( 'img ');
for(var i=0;i <arrImage.length;i++)
{
makeDragable(arrImage[i]);
}
}

热点排行