网页内图片移动代码:用来实现Web页面图片移动托拽的代码段 以下这段JS是主要解决在画面生成Image项目,并通过鼠标事件进行脱拽、移动等操作的代码。 DAQozhP8
<script language="javascript" type="text/javascript"> ;"]?&ri
var top,left; lin
var src,drag,dir,ope,refer,halfwidth; \
m g
var unit=30; D)bR-a_^
eb7~\|9l1i
var aryItems,itemNum=10,index,isInit,id,max=23; ew1bb K>
Z[9f8/6<b
function PageLoad() :s#&nY
{ \=
Wrh3
document.form1.onsubmit=OnSubmit; c1h?aP
]lA.?
aryItems=new Array(itemNum); "2GssBa
top=document.getElementById("TABLE").getClientRects()[0].top; ^i6`w_ /
left=document.getElementById("TABLE").getClientRects()[0].left; 2$1D+(5;
vR'rYDtU@
if(document.getElementById("__Gantt").value!=null&&document.getElementById("__Gantt").value!="") 3/*<i
{ E7j9A`
var gantt=document.getElementById("__Gantt").value; PZhpp"
var array=gantt.split(";"); q[TW
var length=array.length-1; d5 U+]g
var start,width,item; "U
iv[8B
@H|3e@5([
for(index=0;index<length;index++) P*{*^DN
{ jfsbvak
item=array[index].split(","); at5=Zo[bP
start=item[0]; lvIdYf$?
width=item[1]; S01Bc
XV:icY
id="Item"+index; b[ .pD3
aryItems[index]=id; mE3M$2}
AOR(1Qyo
var track = document.createElement("IMG"); o 9{~F`{p
track.setAttribute("id",id); 'A#F< x
track.setAttribute("src","blue.gif"); ljw>[wNv
yZqX[U
document.body.appendChild(track); $+p4X# _
document.getElementById(id).style.position="absolute"; A#8Dv&$Pr
document.getElementById(id).style.top=top+unit*index; +!)v=NY
document.getElementById(id).style.left=left+unit*start; @/0-`Y@?
document.getElementById(id).width=unit*width; 3ew`e"s
document.getElementById(id).style.zIndex=9; 4/ M~#
}
v{*#
} 0ntf%#2{
else @>SirYh
{ WwYy[3U
for(index=0;index<itemNum;index++) cuW&X9\m,
{ 6;vfl*
id="Item"+index; C
lekB
aryItems[index]=id; euc|G Xs
N)N\iad^
var track = document.createElement("IMG"); 2#?qey
track.setAttribute("id",id); BA t0YE`-,
track.setAttribute("src","blue.gif"); m C&*K
vS_Ji<W~E
document.body.appendChild(track); |H7f@b]Sk
document.getElementById(id).style.position="absolute"; ^CWxYDG*
document.getElementById(id).style.top=top+unit*index; (np60mX<
document.getElementById(id).style.left=left+unit*index; `$N()P
document.getElementById(id).width=unit; m"y_@Jk
document.getElementById(id).style.zIndex=9; 1L\\](^
3
} aHdXlmL
} c. ;}e:)s
drag=false; >^5UXQr
left=document.getElementById(aryItems[0]).getClientRects()[0].left; vv%
o+r-t
} jj$D6f/mOG
:497]c3#5C
function OnDrag()
ndCHWhi
{ mv;;0xH
if(event.srcElement.tagName!="IMG"&&!drag) `C +>PCO
{ 1x8zub B
if(event.srcElement.id=="btnTrim") 8pZGu8
{ |k ]{WCD]
// OnTrim(); MJDW-KL-
} V^[B=|56
} 9J
$"Qt5;6
else Pv#>j\OR&
{ $9%UAqk9
if(!drag) zD z"Dn9
{ {I:nza
src=event.srcElement; C1ZuDL)e
halfwidth=src.width/2; r-aCa/4y!
drag=true; \]y /EOT
FIEA'kUy
// 方向の判断 .s8u?1b
if(event.clientX<src.getClientRects()[0].left+halfwidth) j+6`nN7L
{ &RL
j^A!
dir="Backward"; E$1P H)
refer=src.getClientRects()[0].left+src.width; N6thbH@
} Y4j%K~lsY
else u`~,`z^{n
{ _p^&]eQ+k#
dir="Forward"; >tQ$V<YB
refer=src.getClientRects()[0].left; 9J4gDw4<
} /)/>/4O
K^f&+`v6_
// 操作の判断:1.移動・2.縮小/拡大
B +<i=w
if(event.shiftLeft) G Ebm$\
{ m#a1N
ope="Move"; ee\xj$,
refer=event.clientX-src.getClientRects()[0].left; 6~.{~+Bd
} Zy&?.d[z
else ^\3r}kJ0Lp
{ gq~6jf>
ope="Scale"; F$nc9x[S
} "Kc1@EX=
} =QJI_veUG`
else -W'T3_
{ {No
Y`j5S
if(ope=="Scale") w7`09oJm
{ Xn
#v!
var sleft=Math.ceil((src.getClientRects()[0].left-left)/unit-1)*unit+left; @D+2dT0[M
var header=src.getClientRects()[0].left-src.getClientRects()[0].left; Y
wu
> k
var tail=src.width-header-Math.ceil((src.width-header)/unit)*unit; M=#'+CF}W
var swidth=Math.ceil((src.width-header)/unit)*unit; MNu\=p\Eq
if(header>0) s~g0VNu Y
{ #H-EOXy
swidth=swidth+unit; 5h@5.-}
} 91\]Dg
if(tail>0) ?~=5x
{ \Y^GA;AMQQ
swidth=swidth+unit; e!oL!Zg
} Yx':~
src.style.left=sleft; UoOxGo
src.width=swidth; M~Ph/
} s}g3*_"
6oy[0hj
if(ope=="Move") 5Mz6/&`
{ !P@4d G
src.style.left=Math.ceil((src.getClientRects()[0].left-left)/unit-1)*unit+left; S t;@ZV
}
, )PpE&
@j'GcN vs
drag=false; i#:M2&twE
OnTrim() ",P?jgs^g5
} :uB(PeAv*
} ?e2G{0V
} `*y%[J,I#
vf?Xt
function OnScale() ', P_a,\
{ &/8B(0<
if(src!=null&&drag) OXS.CFZM
{ 'tJxADK
if(ope=="Scale") : $N43_Wb
{ 58t~? 2E
// 縮小/拡大の場合 #@m6ag.
if(dir=="Forward") qAi:F=> X
{ X3HJ3F;==
if(event.clientX-refer>=unit) 1pP q)}=+
{ ubQr[/
src.width=event.clientX-refer; *0Wkz'=U
} \-D[C+1(
} F%$lcQ04%
else dQ
Lo,S8(
{ # blh9.V&F
if(refer-event.clientX>unit) qdo_YPG
{ .&.L@CRH
src.style.left=event.clientX; ]F #0to
src.width=refer-src.getClientRects()[0].left; )h1 `?q:5
} \zzPsnFIg
} S+l>@wa)|
} c3*9{Il^
else S*%:ID|/C2
{ :Yn{:%p
// 移動の場合 - XB[2h
src.style.left=event.clientX-refer; AjINO}b
} |sB L(9
} *}Rd%'
h([qq<Lzs
if(event.srcElement!=null) 5D>cbzP@
{ 8xHjdQr
if(event.srcElement.tagName=="IMG") QY$4D;M`g6
{ PcvA/W
if(event.clientX<event.srcElement.getClientRects()[0].left+unit/2) 6+Y@dJnPT
{ +'UxO'v3]
event.srcElement.style.cursor="w-resize"; (ewcj\l4*
} Rr>""
else r8!M8Sc
{ sJ|IW0Mr
event.srcElement.style.cursor="e-resize"; @fd{5 >\
} /7C%m:
} l%7^'nDn
} M:w]g` LKl
} T\L
LOx\
dNz!2mbO
function OnTrim() 8C2!Wwz`J8
{ R= *vPS
var pre,post; H$]FUv8
for(index=0;index<itemNum-1;index++) YR$d\,#R
{ E)F"!56lV
pre=document.getElementById(aryItems[index]); ~kPZh1n`
post=document.getElementById(aryItems[index+1]); 3/2G~$C
if(pre.getClientRects()[0].left+pre.width!=post.getClientRects()[0].left) F%
K}&3
{ S31+ j:"
post.style.left=pre.getClientRects()[0].left+pre.width-2; k'+Mc%pg4E
} 5}2XnM2
} =%oKYQ
A+F@JpV
for(index=0;index<itemNum;index++) OAtn.LU
{ -m>ng
E~q
pre=document.getElementById(aryItems[index]); /|{~GD +A&
if(pre.getClientRects()[0].left>=left+unit*max) $qj||zA
{ =qVD"Z]z
pre.style.left=left+unit*max-2; ;]Bkw6o
pre.width=unit; w@ =U f7
} ;p 'Ej'E
U49
`!~b7
if((pre.getClientRects()[0].left<left+unit*max)&&(pre.getClientRects()[0].left+pre.width>left+unit*max)) lGtTZcg
{
S^4T#/
pre.width=left+unit*max-pre.getClientRects()[0].left; 5Mq7l$]h$
} x4vowF
} /NFcIU
} :=K <2
VaRP+J}UA.
function OnSubmit() 1WW`%
{ 9!sR}
var t=""; IDpW5Dc
for(index=0;index<itemNum;index++) 60 z =bd]
{ ir ^XZVR
t=t+((document.getElementById(aryItems[index]).getClientRects()[0].left-left)/unit).toString(); ;K9rE3
t=t+","; AH#eoKu
t=t+(document.getElementById(aryItems[index]).width/unit).toString(); y=)xo7(
t=t+";"; 4D-4BxN*
} y`OL^D4
document.getElementById("__Gantt").value=t; 4/tp-dBip
} 7FiQTS B:
T$ )dc^
document.onmousedown=OnDrag; V@"Y"}4n4
document.onmousemove=OnScale; oHbG-p
</script>