网页内图片移动代码:用来实现Web页面图片移动托拽的代码段 以下这段JS是主要解决在画面生成Image项目,并通过鼠标事件进行脱拽、移动等操作的代码。 i i&kfy
<script language="javascript" type="text/javascript"> t* eZe`|
var top,left; o"h*@.
var src,drag,dir,ope,refer,halfwidth; j$v2_q
var unit=30; s*%pNE U
kB~KC-&O
var aryItems,itemNum=10,index,isInit,id,max=23; MP"Pqt
m"3gTqG
function PageLoad()
:)7{$OR&
{ jm~(OLg
document.form1.onsubmit=OnSubmit; TNgf96)
y
ZWJ%t'kF
aryItems=new Array(itemNum); W>jgsR79M
top=document.getElementById("TABLE").getClientRects()[0].top; >wsS75n1
left=document.getElementById("TABLE").getClientRects()[0].left; St9+/Md=jQ
s
Yp?V\Y"
if(document.getElementById("__Gantt").value!=null&&document.getElementById("__Gantt").value!="") R^t
)~\d
{ wD9Gl.uQ
var gantt=document.getElementById("__Gantt").value; w?u4-GT
var array=gantt.split(";"); h7 uv0a~0
var length=array.length-1;
~lg1S
var start,width,item; 'j6)5WL$
e-@=QI^,
for(index=0;index<length;index++) (<.uvq61
{ a04I.5!
item=array[index].split(","); bKAR}JM&
start=item[0]; 6LVJ*sjSy
width=item[1]; .W[[Z;D
L\O}q
id="Item"+index; ux8:
aryItems[index]=id; I $5*Puy#
1m$< %t.>
var track = document.createElement("IMG"); {9 PeBc
track.setAttribute("id",id); x37pj)i/
track.setAttribute("src","blue.gif"); 9!aQ@ J^
"0ITW46n
document.body.appendChild(track); #gHs!b-g@
document.getElementById(id).style.position="absolute"; ]GSs{'UhB
document.getElementById(id).style.top=top+unit*index; U}r^M(
s!
document.getElementById(id).style.left=left+unit*start; \|OW`7Q)k
document.getElementById(id).width=unit*width; "q-,140_
document.getElementById(id).style.zIndex=9; c(]NpH
in
} vCPiT2G
} - %ul9} .
else `0]kRA8=
{ z x7fRd$
for(index=0;index<itemNum;index++) )^G&p[G
{ %B;e7
UJ
id="Item"+index;
iMr Np
aryItems[index]=id; L(a){<c
yAge2m]<B
var track = document.createElement("IMG"); q- U/JC
track.setAttribute("id",id); q~3dbj
track.setAttribute("src","blue.gif"); UR/lM,N;
$LS$:%i4
document.body.appendChild(track); U1+X!&OCp
document.getElementById(id).style.position="absolute"; 7~t,Pt)
document.getElementById(id).style.top=top+unit*index; E(5'vr0
document.getElementById(id).style.left=left+unit*index; _x.!,
g{
document.getElementById(id).width=unit; +1 K9R\
document.getElementById(id).style.zIndex=9; ;P` z
?>J:
} yq3i=RB(
} ~*Fbs! ;,
drag=false; c,$ >u,4
left=document.getElementById(aryItems[0]).getClientRects()[0].left; tgu}^TfKkg
} Gw"H#9J}
T
1-@[th
function OnDrag() Et\z^y
{ g~5$X{
if(event.srcElement.tagName!="IMG"&&!drag) ]fN\LY6p
{ ,W"[q ~
if(event.srcElement.id=="btnTrim") p'lL2n$E
{ ;~&F}!pQ
// OnTrim(); /{eD##vhP
} `QH-VR\_
} PcXz4?Q$
else 58x=CN\QU
{ )aW;w |#n
if(!drag) 7Eoa~
{ D0 'L
src=event.srcElement; M2UF3xD
halfwidth=src.width/2; 0PiD<*EA
drag=true; [LDV*79Z
D%L}vugxK
// 方向の判断 Czj]jA(0f
if(event.clientX<src.getClientRects()[0].left+halfwidth) 3lw
KV
{ 1SddZ5
dir="Backward"; W(^R-&av
refer=src.getClientRects()[0].left+src.width; _J'V5]=4
} IYeX\)Gv&
else [PVem
{ FW](GWp`:
dir="Forward"; L9,;zkgo
refer=src.getClientRects()[0].left; {0a (R2nB
} 5u(,g1s}UZ
*fz]Q>2g a
// 操作の判断:1.移動・2.縮小/拡大 1y\-Iz^
if(event.shiftLeft) [^oTC;
{ %}T' 3
ope="Move"; F]_w~1
n5
refer=event.clientX-src.getClientRects()[0].left; 5somoV B
} a]JQZo1$
else ]Ut fI
{ S6Er#)k
ope="Scale"; BWtGeaW/sr
} u\)2/~<]
} /w5~ O:
else %jS#DVxBR
{ u~JCMM$
if(ope=="Scale") UKfC!YR2J8
{ 71g\fGG\
var sleft=Math.ceil((src.getClientRects()[0].left-left)/unit-1)*unit+left; {pzu1*
var header=src.getClientRects()[0].left-src.getClientRects()[0].left; L%hVts'
var tail=src.width-header-Math.ceil((src.width-header)/unit)*unit; ZxvqLu
var swidth=Math.ceil((src.width-header)/unit)*unit; e*nT+Rp
if(header>0) mN!5JZ'2
{ .aA8'/
swidth=swidth+unit; 1\hh,s
} U]8 @
if(tail>0) equ|v~@y
{ E~b Yk6
swidth=swidth+unit; rM{3]v{~
} s#nd:$p3
src.style.left=sleft; \!]Zq#*kH
src.width=swidth; ]>:LHW
} w^rINPAS
)/B'
ODa
if(ope=="Move") |=xK-;qs
{ t%B ,ATW
src.style.left=Math.ceil((src.getClientRects()[0].left-left)/unit-1)*unit+left; t9Sog~:'
} O<H5W|cM
I_h8)W
drag=false; !8z,}HUdK
OnTrim() ^hMJNy&R
} szDd!(&pv
} RV&